2

我正在尝试另存List<String>为字符串,但转换给了我JSONArray价值Integer

所以输出是这样的:

{"data":"{\"my_array\":[\"[41, 14]\"]}"}

我想要的是:

{"data":"{\"my_array\":[\"[\"41\", \"14\"]\"]}"}

第一个输出适用于 Java 环境,但 iOS 需要将值设为“字符串”。

小更新:我相信这会JSONObject.toString()搞砸。下一个代码:

    List<String> test = Arrays.asList("41", "14");
    JSONObject root = new JSONObject();
    try {
        root.put("my_array", test);
    } catch (JSONException e1) {
    }

结果是 : {"my_array":"[41, 14]"}

谢谢。

4

1 回答 1

1

使用JSONArray.

 public void test__aaaa(){
        try {
            List<String> test = Arrays.asList("41", "14");

            JSONArray array = new JSONArray(test);

            JSONObject root  = new JSONObject();
            JSONObject data = new JSONObject();
            root.put("data", data);

            data.put("my_array", array);

            assertEquals(root.toString(), "{\"data\":{\"my_array\":[\"41\",\"14\"]}}");

        } catch (JSONException e1) {
        }
    }

在 Android 上,如果我们把list它作为 Object,Json 将它原样转换为 String,所以我们得到"[41,14]".

于 2013-10-26T08:08:12.237 回答