-1

以下に示すように、JSON形式でデータを投稿する必要があります。また、配列 のサイズは一定ではありません。ユーザーによって異なります。

  {
  "info": [
    {
      "Name": "foo1",
      "Number": 123
    },
    {
      "Name": "foo2",
      "Number": 124
    },
    {
      "Name": "foo2",
      "Number": 125
    }
  ]
}

次のように作成してみました

JSONObject parent = new JSONObject();
JSONArray jArray = new JSONArray();
JSONObject childObj = new JSONObject();


childObj.put("Name", etName.getText()).toString();
childObj.put("Number", etNumber.getText()).toString();

jArray.put(childObj);

parent.put("info",jArray);

しかし、私はそれを取得することができず、例6.1のようにこの方法でも試しましたが、JSONArrayのaddのようなメソッドはありません。では、どうすれば私のデータを投稿できますか。私を助けてください。ありがとう。

4

2 に答える 2

1

あなたの質問が正確に何であるかはわかりませんが、私は通常、あなたが探しているJSON文字列を作成するためにこのようなことをします(以下の例はhttp://www.jsonからのorg.jsonリファレンス実装を使用しています。 org / java / index.html):

JSONObject parent = new JSONObject();
JSONArray infoArray = new JSONArray();


for(int i = 0; i < SOMEARRAY.length; i++)
{
    JSONObject childObj = new JSONObject();
    childObj.put("Name", etName.getText());
    childObj.put("Number", etNumber.getText());
    infoArray.put(childObj);
}

parent.put("info", infoArray);

String encodedJsonString = parent.toString();
于 2012-06-04T09:15:33.410 に答える
0

toString()に何かを入れてから電話をかけている理由がわかりませんchildObj。とにかく、このコードは機能するはずです:

JSONObject parent = new JSONObject();
JSONArray jArray = new JSONArray();
JSONObject childObj = new JSONObject();

try
{
    //create first child
    childObj
        .put("Name", "foo1")
        .put("Number", 123);

    //insert it into the array
    jArray.put(childObj);
    //... repeat for all remaining elements

    //attach the array to the parent
    parent.put("info",jArray);
}
catch (JSONException e)
{
    e.printStackTrace();
}

次に、JSONをPOST用の文字列として取得するには、parent.toString();

于 2012-06-04T09:17:43.520 に答える