繁体   English   中英

如何从JSON字符串中获取每个值

[英]How to get each value from JSON string

我有这个JSON字符串,我需要得到每个docmanId和每个dz所以,我可以遍历它们并使用它们。

我曾尝试使用gson库来做到这一点,但我似乎无法弄明白。

JSON数组:

[{"docmanId":1,"dz":"CR"},
{"docmanId":1,"dz":"EU"},
{"docmanId":1,"dz":"JD"},
{"docmanId":1,"dz":"LT"},
{"docmanId":10,"dz":"CR"},
{"docmanId":10,"dz":"EU"},
{"docmanId":10,"dz":"LT"},
{"docmanId":100,"dz":"CR"},
{"docmanId":100,"dz":"EU"},
{"docmanId":100,"dz":"JD"},
{"docmanId":100,"dz":"LT"},
{"docmanId":1000,"dz":"CR"},
{"docmanId":1000,"dz":"EU"},
{"docmanId":1000,"dz":"JD"},
{"docmanId":1000,"dz":"LT"},
{"docmanId":10000,"dz":"ES"},
{"docmanId":10000,"dz":"EU"},
{"docmanId":10000,"dz":"JD"},
{"docmanId":100000,"dz":"CR"},
{"docmanId":100000,"dz":"EU"},
{"docmanId":100000,"dz":"JD"},
{"docmanId":100000,"dz":"LT"},
{"docmanId":100001,"dz":"CR"},
{"docmanId":100001,"dz":"EU"},
{"docmanId":100001,"dz":"LT"},
{"docmanId":100002,"dz":"CR"},
{"docmanId":100002,"dz":"EU"},
{"docmanId":100002,"dz":"JD"},
{"docmanId":100003,"dz":"CR"},
{"docmanId":100003,"dz":"EU"},
{"docmanId":100003,"dz":"JD"},
{"docmanId":100003,"dz":"LT"},
{"docmanId":100004,"dz":"CR"},
{"docmanId":100004,"dz":"EU"},
{"docmanId":100004,"dz":"JD"},
{"docmanId":100005,"dz":"CR"},
{"docmanId":100005,"dz":"EU"},
{"docmanId":100005,"dz":"JD"},
{"docmanId":100005,"dz":"LT"},
{"docmanId":100006,"dz":"CR"},
{"docmanId":100006,"dz":"EU"},
{"docmanId":100006,"dz":"JD"},
{"docmanId":100006,"dz":"LT"},
{"docmanId":100007,"dz":"CR"},
{"docmanId":100007,"dz":"EU"},
{"docmanId":100007,"dz":"JD"}]

使用org.json

  JSONArray jSONArray = new JSONArray("your input array");
  int length = jSONArray.length();
  for (int i = 0; i < length; i++) {
        JSONObject jSONObject= jSONArray.getJSONObject(i);
        System.out.println(jSONObject.get("docmanId"));
        System.out.println(jSONObject.get("dz"));
    }

jackson

        String json = "[{\"docmanId\":1,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":1,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":1,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":1,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":10,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":10,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":10,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":1000,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":1000,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":1000,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":1000,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":10000,\"dz\":\"ES\"},\n" +
                "{\"docmanId\":10000,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":10000,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100000,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100000,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100000,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100000,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100001,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100001,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100001,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100002,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100002,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100002,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100003,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100003,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100003,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100003,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100004,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100004,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100004,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100005,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100005,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100005,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100005,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100006,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100006,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100006,\"dz\":\"JD\"},\n" +
                "{\"docmanId\":100006,\"dz\":\"LT\"},\n" +
                "{\"docmanId\":100007,\"dz\":\"CR\"},\n" +
                "{\"docmanId\":100007,\"dz\":\"EU\"},\n" +
                "{\"docmanId\":100007,\"dz\":\"JD\"}]";

        ObjectMapper objectMapper = new ObjectMapper();
        DocmanList docmanList = objectMapper.readValue(json, DocmanList.class);

        //logic below
    }
public class Docman {
    private long docmanId;
    private String dz;

    public long getDocmanId() {
        return docmanId;
    }

    public void setDocmanId(long docmanId) {
        this.docmanId = docmanId;
    }

    public String getDz() {
        return dz;
    }

    public void setDz(String dz) {
        this.dz = dz;
    }
}
public class DocmanList extends ArrayList<Docman> {
}

你可以通过生成一个类将其转换为列表的java对象来实现。

首先生成一个类

----------------------------------- com.example.Example.java -------- ---------------------------

package com.example;

import java.io.Serializable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

public class Example implements Serializable
{

@SerializedName("docmanId")
@Expose
private long docmanId;
@SerializedName("dz")
@Expose
private String dz;
private final static long serialVersionUID = 3195470113916852896L;

/**
* No args constructor for use in serialization
* 
*/
public Example() {
}

/**
* 
* @param docmanId
* @param dz
*/
public Example(long docmanId, String dz) {
super();
this.docmanId = docmanId;
this.dz = dz;
}

public long getDocmanId() {
return docmanId;
}

public void setDocmanId(long docmanId) {
this.docmanId = docmanId;
}

public Example withDocmanId(long docmanId) {
this.docmanId = docmanId;
return this;
}

public String getDz() {
return dz;
}

public void setDz(String dz) {
this.dz = dz;
}

public Example withDz(String dz) {
this.dz = dz;
return this;
}

@Override
public String toString() {
return new ToStringBuilder(this).append("docmanId", docmanId).append("dz", dz).toString();
}

@Override
public int hashCode() {
return new HashCodeBuilder().append(docmanId).append(dz).toHashCode();
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof Example) == false) {
return false;
}
Example rhs = ((Example) other);
return new EqualsBuilder().append(docmanId, rhs.docmanId).append(dz, rhs.dz).isEquals();
}

}
Now Tell it to parse a List (of Welcome) instead. Since List is generic you will typically use a **TypeReference**
List<Welcome> participantJsonList = mapper.readValue(jsonString, new TypeReference<List<Welcome>>(){});

使用http://www.jsonschema2pojo.org/将您的json转换为java类。

您可以使用JsonPath解析它:

static String json = "...";
public static void main(String[] args) {
    String pageName = JsonPath.read(json, "$.pageInfo.pageName");
    System.out.println(pageName);

    Integer posts = JsonPath.read(json, "$.posts.length()");

    for(int i=0; i < posts; i++) {
        String post_id = JsonPath.read(json, "$.posts[" + i + "].post_id");
        System.out.println(post_id);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM