首页 > 解决方案 > 如何在 Java/Android 中将其转换为 Json?

问题描述

我想将这个我不知道它叫什么的转换为 Json。你能帮助我吗?

[{key1=value1,key2=value2,key3=value3}]

结果必须是这样的: { "key1":"value1", "key2":"value2", "key3":"value3" }

标签: javaandroidjsongetjsonjson-deserialization

解决方案


假设这是一个Map对象的内容,您可以使用Gson将 Java 对象(包括自定义对象)转换为 JSON,并将 JSON 转换回对象。看起来像这样:

Gson gson = new Gson();
String json = gson.toJson(YOUR_MAP);

回到地图:

Gson gson = new Gson();
Type type = new TypeToken<Map<KEY_TYPE, VALUE_TYPE>>(){}.getType();
Map YOUR_MAP = gson.fromJson(JSON, type);

如果这不是一个Map,只是一个奇怪的字符串,想成为一个Map但不能完全做到,你可以通过以下方式格式化字符串:

  1. substring(int start, int end)使用方法去除两端的两组括号
  2. 使用逗号和等号分隔条目split(",|=")
  3. String用引号重新组装JSON

    • String JSON = "{ \"" + arrayFromOriginalString[1] + "\":\"", arrayFromOriginalString[2]...假设源字符串始终具有相同数量的条目
    • 如果源总是不同,您可以使用for循环并增加 2

      String json = "{";
      
      for(int i = 0; i < YOUR_ARRAY.length; i += 2;) {
          json += "\"" + YOUR_ARRAY[i] + "\":\"" + YOUR_ARRAY[i + 1] + "\"";
      
          //Some kind of if condition to decide if a comma is required (Last entry)
      }
      
      json += "}";
      

这是此代码的功能齐全的示例


推荐阅读