簡體   English   中英

在android中將Arraylist轉換為JSONARRAY

[英]Convert Arraylist to JSONARRAY in android

轉換后,我 AMD 得到這些反沖想要刪除它["{\\"INFO_ID\\":\\"1\\"}"]

這就是我轉換的方式

JSONArray InfoIdJsonArray1 = new JSONArray(arraylist); 提前致謝

你可以這樣做(示例):

ArrayList<String> arrayList= new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
JSONArray jsonArray = new JSONArray(arrayList);

你可以很容易地用Gson庫做到這一點

搖籃:

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);

這是轉換(從/到)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
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM