2013-03-31 34 views
16

私はアンドロイドでこのJSONオブジェクトを作成しようとしています。私はオブジェクトに文字列配列を追加する方法に立ち往生しています。JSONオブジェクトに文字列配列を追加する方法は?

A = { 
    "class" : "4" , 
    "name" : ["john", "mat", "jason", "matthew"] 
    } 

これは私が書いたコードです:

import org.json.JSONObject; 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", ["john", "mat", "jason", "matthew"]); 

しかし、最後の行は、エラーになります。これを越えて

答えて

36

Tomによって提案された不適切なアプローチ。最適化されたコードは次のようになります。

ArrayList<String> list = new ArrayList<String>(); 
list.add("john"); 
list.add("mat"); 
list.add("jason"); 
list.add("matthew"); 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", new JSONArray(list)); 
+1

これはこれを行う正しいJavaの方法です。選択された答えはうまくいくが、これを行う正しい方法ではない。 – zeeshan

+0

これを行うには、より良い方法が受け入れられるべきです。 –

2

これによりエラーが発生しています。

school.put("name", ["john", "mat", "jason", "matthew"]); 
       ^        ^ 

このようにします。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

助けがありません – VenkateshShukla

+0

@VenkateshShuklaあなたは今どのような問題がありますか? –

+0

遅れて申し訳ありません...トムが私の問題を解決したと言いました... – VenkateshShukla

6

最終行が無効なJavaであるため、エラーが発生しています。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

これは解決しました...実際には、私は新しいJSONArrayを作成し、その中にすべてのデータを入れなければなりませんでした。 Thanx a lot – VenkateshShukla

2

@ bhavindesaiの回答は素晴らしい答えです。この問題を解決する別の方法があります。 Json Simpleライブラリを使って簡単に実行できます。それだけです

org.json.simple.JSONObject jsonObject=new org.json.simple.JSONObject(); 
jsonObject.put("Object","String Object"); 

ArrayList<String> list = new ArrayList<String>(); 
      list.add("john"); 
      list.add("mat"); 
      list.add("jason"); 
      list.add("matthew"); 

      jsonObject.put("List",list); 

:ここでのGradleここ

compile 'com.googlecode.json-simple:json-simple:1.1' 

では、サンプルコードです。 :)

関連する問題