I'm trying to save List<String>
as string, but the conversion gives me JSONArray
having Integer
values.
我试图将List
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]”。