繁体   English   中英

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

[英]JSONObjcet with String array toString() output has integer values instead of strings

我正在尝试将List<String>保存为字符串,但是该转换使我得到了具有Integer值的JSONArray

所以输出是这样的:

{"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]"}

谢谢。

使用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]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM