我正在尝试将List<String>
保存为字符串,但转化后会为JSONArray
提供Integer
个值。
所以输出是这样的:
{"data":"{\"my_array\":[\"[41, 14]\"]}"}
我想要的是什么:
{"data":"{\"my_array\":[\"[\"41\", \"14\"]\"]}"}
第一个输出对于Java环境是可以的,但iOS需要将值设置为“Strings”。
稍微更新:我相信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]"}
感谢。
答案 0 :(得分: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]"
。