【发布时间】:2020-09-26 14:02:09
【问题描述】:
转换后我 AMD 得到这些回击想要删除它
["{\"INFO_ID\":\"1\"}"]
这就是我转换的方式
JSONArray InfoIdJsonArray1 = new JSONArray(arraylist);
提前谢谢
【问题讨论】:
标签: java android arrays arraylist
转换后我 AMD 得到这些回击想要删除它
["{\"INFO_ID\":\"1\"}"]
这就是我转换的方式
JSONArray InfoIdJsonArray1 = new JSONArray(arraylist);
提前谢谢
【问题讨论】:
标签: java android arrays arraylist
你可以这样做(示例):
ArrayList<String> arrayList= new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
JSONArray jsonArray = new JSONArray(arrayList);
【讨论】:
您可以使用Gson 库轻松做到这一点
Gradle:
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
用法
ArrayList<String> myList = new ArrayList<>();
String jsonArrayString = (new Gson()).toJson(myList);
JSONArray jsonArray = new JSONArray(jsonArrayString);
【讨论】:
This's a helpful solution 转换(从/到)json。 并禁用转义 HTML 字符:
Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
或自定义转义字符如下:
val gson =
GsonBuilder().registerTypeAdapter(String::class.java, CustomeEscapeSerializer()).create()
class CustomeEscapeSerializer : JsonSerializer<String?> {
override fun serialize(
s: String?,
type: Type?,
jsonSerializationContext: JsonSerializationContext?
): JsonElement {
return JsonPrimitive(s?.let { escapeJS(it) })
}
companion object {
fun escapeJS(string: String): String {
var s = ""
val escapes =
arrayOf(
arrayOf("\\", "\\\\"),
arrayOf("\"", "\\\""),
arrayOf("\n", "\\n"),
arrayOf("\r", "\\r"),
arrayOf("\b", "\\b"),
arrayOf("\\f", "\\f"),
arrayOf("\t", "\\t")
)
for (esc in escapes) {
s = string.replace(esc[0], esc[1])
}
return s
}
}
}
【讨论】: