带有字符串数组toString()输出的JSONObjcet具有整数值而不是字符串

时间:2021-12-22 15:59:35

I'm trying to save List<String> as string, but the conversion gives me JSONArray having Integer values.

我试图将List 保存为String,但转换为JSONArray后具有整数值。

So the output is this:

输出是这样的:

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

What i want:

我想要的:

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

The first output is okay for Java environment, but iOS needs the values to be "Strings".

第一个输出对于Java环境来说是可以的,但是iOS需要的值是“string”。

Little update: I believe that JSONObject.toString() messes this up. The next code:

小更新:我认为JSONObject.toString()会把这弄糟。接下来的代码:

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

Results in : {"my_array":"[41, 14]"}

结果为:{“my_array”:“[41,14]”}

Thanks.

谢谢。

1 个解决方案

#1


1  

Use 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) {
        }
    }

On Android if we put list as Object, Json convert it to String as is, so we get "[41,14]".

在Android中,如果我们把list作为对象,Json将它转换成原样的字符串,所以我们得到“[41,14]”。

#1


1  

Use 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) {
        }
    }

On Android if we put list as Object, Json convert it to String as is, so we get "[41,14]".

在Android中,如果我们把list作为对象,Json将它转换成原样的字符串,所以我们得到“[41,14]”。