【问题标题】:Convert Arraylist to JSONARRAY in android在android中将Arraylist转换为JSONARRAY
【发布时间】:2020-09-26 14:02:09
【问题描述】:

转换后我 AMD 得到这些回击想要删除它 ["{\"INFO_ID\":\"1\"}"]

这就是我转换的方式

JSONArray InfoIdJsonArray1 = new JSONArray(arraylist); 提前谢谢

【问题讨论】:

    标签: java android arrays arraylist


    【解决方案1】:

    你可以这样做(示例):

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

    【讨论】:

      【解决方案2】:

      您可以使用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);
      

      【讨论】:

        【解决方案3】:

        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
                }
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2023-03-27
          • 2013-06-06
          • 2015-07-30
          • 2016-10-29
          • 1970-01-01
          • 2014-03-24
          • 2011-06-18
          • 2020-05-13
          相关资源
          最近更新 更多