2016-10-01 3 views
-3
[{ 
    id: 12345,  //Id given by android app 
    name: Name,  
    status: { 
     yes: [N1, n2, n3], 
     no: [n1, n2 ,n3] 
    } 
}] 

jsonオブジェクトをJavaでどのように記述しますか?Javaでjsonオブジェクトを作成する必要があります。私はどうしますか?

私の試み:

JSONObject object=new JSONObject(); 
JSONArray jsonarray=new JSONArray(); 
try { 
    object.put("id",12345); 
    object.put("name",Name); 
    jsonarray.put("yes"); 
    jsonarray.put("no"); 
} catch (JSONException js) { 
    js.printStackTrace(); 
} 

私はこの問題はjsonarrayであると思います。 jsonarrayオブジェクトを再度記述する必要があります。しかし、私はそれをどうやってやるのか分かりません。

編集

この質問は複製されません。

@ShaishavJoganiこの質問はJSONを生成することに関するもので、これはJSONの解析についてのものなので、この質問はあなたがリンクを提供した質問と重複しているとは思いません。

+0

あなたは上記のJSONを解析する意味ですか? –

+0

コードを実行するとどうなりますか?それはコンパイルされますか?エラーメッセージが表示されますか?どのようなエラーメッセージですか?この情報を含めるには質問を編集してください。 –

+0

BTWあなたが投稿したコードには構文エラーがあります:あなたは「後で」を忘れてしまいましたか?実際のコードですか?そうでない場合は、実際のコードをコピーして貼り付けてください。 –

答えて

2

statusJSONObjectyesnoでは、タイプJSONArrayのこのJSONObjectの性質であり、主な目的は、JSONArrayであるので、私はむしろ、このようにそれを行うだろう:

JSONObject object = new JSONObject(); 
object.put("id", 12345); 
object.put("name", "Name"); 
JSONObject status = new JSONObject(); 
object.put("status", status); 
status.put("yes", new JSONArray(Arrays.asList("N1", "n2", "n3"))); 
status.put("no", new JSONArray(Arrays.asList("n1", "n2", "n3"))); 

JSONArray array = new JSONArray(Collections.singletonList(object)); 
System.out.println(array); 

出力: Trの:私はそこJSONObjectだろうか配列のためのいくつかの名前であり、アレイの前に願っています

[{"name":"Name","id":12345,"status":{"no":["n1","n2","n3"],"yes":["N1","n2","n3"]}}] 
+1

['JSONArray'](https://developer.android.com/reference/org/json/JSONArray.html)は' Collection'コンストラクタを持っていますので、 'statusなどのコードを短縮できます。 – Andreas

+0

@Andreas良いキャッチ、答えを修正してみましょう –

+0

もう一度それを読んでください。それは配列であるか、または配列であるかどうかを調べてください( "yes"、新しいJSONArray(Arrays.asList( "N1"、 "n2"、 "n3")))。配列をチェックし始めます。@NicolasFilotto –

0

コードの下のyこの配列は、JSONObjectに来る場合:

そう
try {  
       JSONObject object=new JSONObject(); 
       JSONArray jsonarray=object.getJSONArray(); 
       if(jsonarray.length()>0) 
       { 
       for(int i=0; i<jsonarray.length();i++) 
       { 

        object.put("id",12345); 
        object.put("name",Name); 
        jsonarray.put("yes"); 
        jsonarray.put("no); 
       } 
       } 
     } 

     catch (Exception e) { 
      e.printStackTrace(); 
      } 

try {  

        JSONArray jsonarray=new JSONArray("Name of Array"); 
        if(jsonarray.length()>0) 
        { 
        for(int i=0; i<jsonarray.length();i++) 
        { 

         object.put("id",12345); 
         object.put("name",Name); 
         jsonarray.put("yes"); 
         jsonarray.put("no); 
        } 
        } 
      } 

      catch (Exception e) { 
       e.printStackTrace(); 
       } 
関連する問題