首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从JSON字符串中获取每个值

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

Stack Overflow用户
提问于 2019-05-30 08:22:23
回答 4查看 104关注 0票数 1

我有这个JSON字符串,我需要得到每个docmanId和每个dz,这样我就可以循环它们并使用它们。

我尝试过使用gson库来实现这一点,但我似乎没有弄清楚。

JSON阵列:

代码语言:javascript
复制
[{"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"}]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-05-30 08:35:43

与org.json,

代码语言:javascript
复制
  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"));
    }
票数 2
EN

Stack Overflow用户

发布于 2019-06-05 08:05:00

用jackson

代码语言:javascript
复制
        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
    }
代码语言:javascript
复制
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;
    }
}
代码语言:javascript
复制
public class DocmanList extends ArrayList<Docman> {
}
票数 1
EN

Stack Overflow用户

发布于 2019-05-30 09:49:59

您可以通过在列表的java对象中生成一个类来转换它。

首先生成一个类

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

代码语言:javascript
复制
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类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56374390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档