【问题标题】:how to convert Map<String,TreeMap<String,String>> String into Json Object in java?java - 如何将 Map<String,TreeMap<String,String>> String 转换为 Java 中的 Json 对象?
【发布时间】:2019-12-18 06:50:00
【问题描述】:

从以下格式存储的缓存中检索后

{address={address1=string, address2=string, addressId=2045, city=string, fxGeocode=string, 
houseNumber=string, isActive=true, postalCode=string, state=string, streetName=string, zip=string}, 
externalIds=[{externalId=string, externalIdDocId=38915437-69d7-449a-9bd8-9832c78b2010, 
partyRoleExternalIdType=string}], name=string, organizationRoleId=990}

我必须将它转换回 json 对象。最好的方法是什么?

转换后的 json 对象格式如下

{
"address": {
    "address1": "string",
    "address2": "string",
    "addressId": "2045",
    "city": "string",
    "fxGeocode": "string",
    "houseNumber": "string",
    "isActive": "true",
    "postalCode": "string",
    "state": "string",
    "streetName": "string",
    "zip": "string"
},
"externalIds": [
    {
        "externalId": "string",
        "externalIdDocId": "38915437-69d7-449a-9bd8-9832c78b2010",
        "partyRoleExternalIdType": "string"
    }
],
"name": "string",
"organizationRoleId": "990"
}

【问题讨论】:

    标签: java json dictionary treemap


    【解决方案1】:

    我会用 Jackson JSON 库来做。

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.10.1</version>
    </dependency>
    

    这应该会给你你正在寻找的输出:

    ObjectMapper mapper = new ObjectMapper();
    
    Map<String, Map<String, String>> myMap = new HashMap<>();
    
    // add stuff to your map of maps
    
    // pretty print
    String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(myMap);
    
    System.out.println(json);
    

    【讨论】:

      【解决方案2】:

      您可以使用 com.fasterxml.jackson.core 库。

      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.9.5</version>
      </dependency>
      
           and use objectMapper to convert this object into JSON.
           //Object to JSON in String
      
             ObjectMapper mapper = new ObjectMapper();
            String jsonInString = mapper.writeValueAsString(object);
      
            // beautify JSON
            String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
      

      【讨论】:

        【解决方案3】:

        你可以使用ObjectMapper类将java类对象转成jason,json转成java类对象

        import com.fasterxml.jackson.core.JsonProcessingException;
        import com.fasterxml.jackson.databind.ObjectMapper;
        
        import java.util.HashMap;
        import java.util.Map;
        import java.util.TreeMap;
        
        public class Test {
            public static void main(String[] args) throws JsonProcessingException {
                Map<String, TreeMap<String,String>> m = new HashMap<>();
                TreeMap<String,String> t = new TreeMap<>();
                t.put("address1", "string");
                t.put("address2", "string");
                m.put("address", t);
        
                ObjectMapper om = new ObjectMapper();
                String json = om.writeValueAsString(m);
                System.out.println(json);
            }
        }
        

        输出

        {"address":{"address1":"string","address2":"string"}}

        【讨论】:

          【解决方案4】:

          Gson 是 Google 提供的一个很好的 json 序列化/反序列化库。 Maven 依赖:

          <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
          </dependency>
          

          示例序列化:

          Gson gson = new Gson();
          
          Map<String, Map<String, String>> someMap = new HashMap<>();
          
          try (FileWriter writer = new FileWriter("C:\\folder\\file.json")) {
              gson.toJson(someMap, writer);
          } catch (IOException e) {
              e.printStackTrace();
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-11-17
            • 2015-08-30
            • 1970-01-01
            • 2018-09-06
            • 2020-03-17
            • 2020-06-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多