在android中解析多个Json对象

时间:2012-06-06 02:59:50

标签: android json

我正在尝试将此json发送到Web服务器:

[{"codemenu":"1","name":"Fried Rice"},
{"codemenu":"2","name":"Hongkong Fried Rice"},
{"codemenu":"3","name":"Special fried Rice"}]

这是代码,但它不起作用:

HttpPost httppost = new HttpPost("http://10.0.2.2/pnir_restoran/test.php");
JSONObject json = new JSONObject();
try {
    // JSON data:
    json.put("codemenu", "1");
    json.put("name", "friedrice");
    json.put("codemenu", "2");
    json.put("name", "Hongkong friedrice");
    json.put("codemenu", "3");
    json.put("name", "Special friedrice");          

    JSONArray postjson=new JSONArray();
    postjson.put(json); //i cant use postjson.add(json);

    // Post the data:
    httppost.setHeader("json",json.toString());
    httppost.getParams().setParameter("jsonpost",postjson);

    // Execute HTTP Post Request
    System.out.print(json);
    HttpResponse response = httpclient.execute(httppost);

我该怎么办?请帮帮我。

2 个答案:

答案 0 :(得分:1)

您需要使用JSONArray,然后将单个JSONObject放入数组中:

// Initialize the JSON Array and your three seperate objects.
JSONArray jsonArray = new JSONArray();
JSONObject jObj1 = new JSONObject();
JSONObject jObj2 = new JSONObject();
JSONObject jObj3 = new JSONObject();

// Put elements in one object at a time and put them in your array.
jObj1.put("codemenu", "1");
jObj1.put("name", "friedrice");

jsonArray.put(jObj1);

jObj2.put("codemenu", "2");
jObj2.put("name", "Hongkong friedrice");

jsonArray.put(jObj2);

jObj3.put("codemenu", "3");
jObj3.put("name", "Special friedrice");

jsonArray.put(jObj3);

答案 1 :(得分:0)

您可以使用Spring Android's RestTemplate module

,而不是手动执行所有JSON处理