2011-09-21 11 views
8

में शामिल मैं जावा में निर्माण संरचना की तरह नीचे की जरूरत है और प्रतिक्रिया के रूप में भेजें:मैं एक JSONArray करने के लिए एक JSONObject जोड़ना चाहते हैं और कि JSONArray अन्य JSONObject

var abc = {"action":"Remove", 
     "datatable":[ 
      {"userid":"userid0","username":"name0"}, 
      {"userid":"userid1","username":"name1"}, 
      {"userid":"userid2","username":"name2"}, 
      {"userid":"userid3","username":"name3"} 
       ] 
    , 
     "msgType":"success"}; 

मैं कर रहा हूँ:

JSONArray jsonArray = new JSONArray(); 

for (loop) { 
    JSONObject jsonObj= new JSONObject(); 
    jsonObj.put("srcOfPhoto", srcOfPhoto); 
    jsonObj.put("username", "name"+count); 
    jsonObj.put("userid", "userid"+count); 

    jsonArray .add(jsonObj.toJSONString()); 
} 

Map paramMap = new HashMap(); 

paramMap.put("action", "remove"); 

paramMap.put("datatable", jsonArray); 

paramMap.put(Constant.MSG_TYPE , Constant.SUCCESS); 

getJSONMessage(paramMap); 
समारोह ऊपर

और herer तरह json स्ट्रिंग में paramMap परिवर्तित किया जाता है:

public static String getJSONMessage(Map<String, String> paramMap){ 
    if(paramMap != null && paramMap.size() > 0) 
     return JSONObject.toJSONString(paramMap); 
    else 
     return ""; 
} 

लेकिन यह creati नहीं है सही संरचना, क्या कोई इस में मेरी मदद कर सकता है?

{ "कार्रवाई": "निकालें", "datatable": [ "{\" उपयोगकर्ता id \ ": \" userid0 \ ", \" srcOfPhoto \ "

यहाँ क्या मैं उत्पादन हो रही है है: \ "उपयोगकर्ता \ /JMMBGTCHG.jpg \", \ "उपयोगकर्ता नाम \": \ "name0 \"} "]," msgstr ":" सफलता "}

जिसे जावास्क्रिप्ट में पार्स नहीं किया जा रहा है।

var json = eval('(' + respText+')'); 
alert("contents>>"+json.datatable); 
alert("contents.datatable[0]>>>"+json.datatable[0].username); 

अंतिम चेतावनी अपरिभाषित दिखा रहा है।


ओह खेद मैं अंतिम पंक्ति पेस्ट करने के लिए भूल गया, यहाँ अंतिम पंक्ति है:

public static String getJSONMessage(Map<String, String> paramMap){ 
    if(paramMap != null && paramMap.size() > 0) 
     return JSONObject.toJSONString(paramMap); 
    else 
     return ""; 
} 
+0

मैं एक साथ अपने दो खातों का विलय कर दिया गया है। [कृपया कुकी-आधारित खातों के बारे में इस फ़ैक प्रविष्टि को पढ़ें।] (Http://meta.stackexchange.com/questions/44557/why-should-i-register-my-account/1228) इसके अलावा, StackOverflow एक फ़ोरम नहीं है ; यदि आपका कोई नया प्रश्न है, तो कृपया एक नया प्रश्न पूछें। यदि आप अपने प्रश्न में अधिक जानकारी शामिल करना चाहते हैं, तो कृपया [इसे संपादित करें] (http://stackoverflow.com/posts/7497980/edit)। यदि आप उत्तर देने वाले लोगों में से किसी एक के साथ बातचीत करना चाहते हैं, तो आप उन्हें एक टिप्पणी छोड़ सकते हैं। – Will

उत्तर

16
JSONArray jsonArray = new JSONArray(); 

for (loop) { 
    JSONObject jsonObj= new JSONObject(); 
    jsonObj.put("srcOfPhoto", srcOfPhoto); 
    jsonObj.put("username", "name"+count); 
    jsonObj.put("userid", "userid"+count); 

    jsonArray.put(jsonObj.valueToString()); 
} 

JSONObject parameters = new JSONObject(); 

parameters.put("action", "remove"); 

parameters.put("datatable", jsonArray); 

parameters.put(Constant.MSG_TYPE , Constant.SUCCESS); 

क्यों:

getJSONMessage(paramMap); 

और समारोह ऊपर json स्ट्रिंग में paramMap परिवर्तित क्या आप एक हैशमैप का उपयोग कर रहे थे यदि आप चाहते थे कि इसे JSONObject में रखा जाए?

संपादित करें: के रूप में प्रति http://www.json.org/javadoc/org/json/JSONArray.html

+3

में कोई 'एड (jsonObj) 'नहीं है, लेकिन' put (jsonObj)' संभव है (यह JSONString में कनवर्ट करने के लिए अनिवार्य प्रतीत नहीं होता है) –

+0

@ सोमोन कहीं और: अतिरिक्त विधि है: –

+0

विधि के लिए जेएसओएनस्ट्रिंग() को अपरिभाषित है JSONObject प्रकार ?? – Basbous

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