【问题标题】:Get values from String associative array in Java [duplicate]从Java中的字符串关联数组中获取值[重复]
【发布时间】:2016-10-31 21:32:30
【问题描述】:

我有这个字符串:

[{"id":1,"code":"number","field":"Customer Number","value":"123456"},{"id":2,"code":"customerName","field":"Customer Name","value":"John"}]

我想在 java 中获取这些值:

客户编号:123456

客户姓名:约翰

我该怎么做?

谢谢你所做的一切。

热烈的问候。

【问题讨论】:

    标签: java json string


    【解决方案1】:

    解决方案使用杰克逊。为此需要有 JACKSON 的数据绑定、核心和注释 jar。确保所有 3 个 jar 都是相同的版本。

    为 JSON 创建类如下:

    public class Items {
        private int id;
        private String code;
        private String field;
        private String value;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getCode() {
            return code;
        }
        public void setCode(String code) {
            this.code = code;
        }
        public String getField() {
            return field;
        }
        public void setField(String field) {
            this.field = field;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }
    

    由于你的数据是一个JSON数组,所以反序列化的方法如下:

    String jsonString = "your Json array";
    ObjectMapper mapper = new ObjectMapper();
    List<Data> objList = mapper.readValue(jsonString, new TypeReference<List<Data>>(){});
    for (Data obj : objList) {
         //code.
    }
    

    如果数据是一个简单的 JSON 对象,反序列化将是:

    String jsonString = "your JSON";
    ObjectMapper mapper = new ObjectMapper();
    Data obj = mapper.readValue(jsonString, Data.class);
    System.out.println(obj.getId());
    

    【讨论】:

    • 如果这解决了您的问题,请接受作为答案或赞成或两者兼而有之:)
    【解决方案2】:

    你使用JsonArray,里面有文档here

    String yourString = "[{"id":1,"code":"number","field":"Customer Number","value":"123456"},{"id":2,"code":"customerName","field":"Customer Name","value":"John"}]"
    JsonReader jr = new JsonReader(yourString);
    JsonArray array = jr.readArray(); 
    for(int ii=0; ii < array.length; ii++){
         JsonObject obj = array.getJsonObject(ii); 
         String id = obj.getString("id");
         String number = obj.getString("code");
         //and so on...
    }
    
    jr.close();
    

    【讨论】:

      猜你喜欢
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2020-03-30
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多