[英]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.