我正在尝试将此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);


我该怎么办?请帮我。

最佳答案

您需要使用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);

10-08 03:08