2011-08-25 54 views
8

基本的に私は持っています:JSONArrayをJSONObjectに変換するにはどうすればよいですか?

JSONArray j = new JSONArray(); 
j.add(new JSONObject()); //JSONObject has a bunch of data in it 
j.add(new JSONArray()); //JSONArray has a bunch of data in it 

そして今、私はJSONArrayを同じ情報でJSONObjectに変えたいと思います。だから私はオブジェクトの周りを渡すことができますし、私が望むときに私はオブジェクトからすべての情報を取得することができます。助けていただければ幸いです。

+0

まあ、私はJSONArray.toJSONObject(引数)を使用してみましたが、JSONに新しいイム私はAPIがために入れたかったそれを把握することができませんでしたarg。 http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONArray.html#toJSONObject(net.sf.json.JSONArray) – Grammin

答えて

17

通常、Jsonオブジェクトには、名前付きフィールドとして値(配列を含む)が含まれます。したがって、次のようなものがあります。

JSONObject jo = new JSONObject(); 
JSONArray ja = new JSONArray(); 
// populate the array 
jo.put("arrayName",ja); 

{"arrayName":[...]}となります。

+1

これは私の値をarray私はオブジェクトにそれらを追加し、それぞれに名前識別子を与えました。ありがとうございました。 – Grammin

1

元々JSONObjectとしてデータを取得できませんか?

おそらく最初にJSONObjectとJSONArrayの両方として文字列を解析するのでしょうか? JSON文字列はどこから来ますか?

JsonArrayをJsonObjectに変換することが可能かどうかはわかりません。私はあなたがjson.org

  • JSONObject.java
    A JSONObjectから、次を使用していると推定

    は、名前/値のペアの順不同のコレクションです。その外部形式は、中括弧で囲まれた文字列で、名前と値の間にコロンがあり、値と名前の間にカンマがあります。内部形式は、名前で値にアクセスするget()およびopt()メソッドと、値で名前を追加または置換するためのput()メソッドを持つオブジェクトです。値には、Boolean、JSONArray、JSONObject、Number、Stringのいずれか、またはJSONObject.NULLオブジェクトのいずれかの値を指定できます。

  • JSONArray.java
    JSONArrayは順序付けられた値のシーケンスです。その外部形式は、値の間にコンマを入れた角括弧で囲まれた文字列です。内部形式は、インデックスで値にアクセスするget()およびopt()メソッドと、値を追加または置換するためのput()メソッドを持つオブジェクトです。値には、Boolean、JSONArray、JSONObject、Number、Stringのいずれか、またはJSONObject.NULLオブジェクトのいずれかの値を指定できます。

2

コード:

List<String> list = new ArrayList<String>(); 

list.add("a"); 

JSONArray array = new JSONArray(); 

for (int i = 0; i < list.size(); i++) { 
    array.put(list.get(i)); 
} 
JSONObject obj = new JSONObject(); 

try { 
    obj.put("result", array); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
1

私はこのようなJSONObjectを持っている:{"status":[{"Response":"success"}]}

JSONObject値を静的な値を使用せずに自動的にJSONObjectに変換したい場合、そのコードがあります。

JSONオブジェクトにJSONArrayの変換
JSONArray array=new JSONArray(); 
JSONObject obj2=new JSONObject(); 
obj2.put("Response", "success"); 
array.put(obj2); 
JSONObject obj=new JSONObject(); 
obj.put("status",array); 

Iterator<String> it=obj.keys(); 
     while(it.hasNext()){ 
String keys=it.next(); 
JSONObject innerJson=new JSONObject(obj.toString()); 
JSONArray innerArray=innerJson.getJSONArray(keys); 
for(int i=0;i<innerArray.length();i++){ 
JSONObject innInnerObj=innerArray.getJSONObject(i); 
Iterator<String> InnerIterator=innInnerObj.keys(); 
while(InnerIterator.hasNext()){ 
System.out.println("InnInnerObject value is :"+innInnerObj.get(InnerIterator.next())); 


} 
} 
関連する問題