2011-08-25 17 views
8

मूल रूप से मेरे पास है:मैं JSONArject को 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 

और अब मैं इसे में एक ही जानकारी से चालू करने के लिए है कि एक JSONObject में JSONArray चाहते हैं। ताकि मैं ऑब्जेक्ट के चारों ओर पास कर सकूं और फिर जब मैं चाहूं तो मैं ऑब्जेक्ट से सारी जानकारी ले सकता हूं। किसी भी मदद को सराहा जाएगा, धन्यवाद।

+0

खैर मैं JSONArray.toJSONObject (आर्ग) का उपयोग कर की कोशिश की लेकिन JSON करने के लिए नए im मैं इसे समझ नहीं सकता है बाहर क्या एपीआई के लिए में डाल करना चाहते थे तर्क http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONArray.html#toJSONObject(net.sf.json.JSONArray) – Grammin

उत्तर

17

आमतौर पर, एक जेसन ऑब्जेक्ट में आपके मूल्य (सरणी समेत) नामित फ़ील्ड के रूप में होगा। तो, कुछ ऐसा:

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

जो JSON में {"arrayName" होगा: [...]}।

+1

हाँ, मुझे वही करना है जो मुझे अपने मूल्यों को जोड़ने के बजाय करना है सरणी मैंने अभी उन्हें एक ऑब्जेक्ट में जोड़ा और प्रत्येक नाम पहचानकर्ता दिया। धन्यवाद। – Grammin

1

क्या आप मूल रूप से JSONObject के रूप में डेटा नहीं प्राप्त कर सकते हैं?

शायद स्ट्रिंग को पहले JSONObject और JSONArray दोनों के रूप में पार्स करें? JSON स्ट्रिंग कहां से आ रही है?

मुझे यकीन नहीं है कि जेसनऑर्रे को जेसनऑब्जेक्ट में परिवर्तित करना संभव है।

मैं आप निम्नलिखित का उपयोग कर रहे से json.org

  • JSONObject.java
    एक JSONObject नाम/मान युग्म के एक अव्यवस्थित संग्रह है अनुमान। इसका बाहरी रूप घुंघराले ब्रेसिज़ में नाम और मानों के बीच कोलों और मूल्यों और नामों के बीच अल्पविरामों के साथ लपेटा हुआ एक स्ट्रिंग है। आंतरिक रूप एक नाम है() और नाम से मूल्यों तक पहुंचने के लिए विकल्प() और ऑप्ट() विधियों, और नामों के आधार पर मूल्य जोड़ने या बदलने के लिए() विधियों को डालता है। मान इन प्रकारों में से कोई भी हो सकते हैं: बूलियन, JSONArray, JSONObject, संख्या, और स्ट्रिंग, या JSONObject.NULL ऑब्जेक्ट।

  • JSONArray.java
    एक JSONArray मूल्यों का क्रमबद्ध अनुक्रम है। इसका बाहरी रूप मूल्यों के बीच अल्पविराम के साथ स्क्वायर ब्रैकेट में लिपटे एक स्ट्रिंग है। आंतरिक रूप एक वस्तु है जो इंडेक्स द्वारा मानों तक पहुंचने के लिए() और opt() विधियों को प्राप्त करता है, और मान जोड़ने या बदलने के लिए() विधियों को डालता है। मान इन प्रकारों में से कोई भी हो सकते हैं: बूलियन, JSONArray, JSONObject, संख्या, और स्ट्रिंग, या 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 में JSONArray है, तो उसके लिए कोड यहां दिया गया है।

JSONArray array=new JSONArray(); 
JSONObject obj2=new JSONObject(); 
obj2.put("Response", "success"); 
array.put(obj2); 
JSONObject obj=new JSONObject(); 
obj.put("status",array); 

परिवर्तित JSONArray JSON करने के लिए वस्तु:

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())); 


} 
} 
संबंधित मुद्दे