Как получить каждое значение из строки JSON

У меня есть эта строка 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"}]
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
93
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

С 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"));
    }

вы можете сделать это, создав класс, преобразовав его в 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);
    }
}

с 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> {
}

Другие вопросы по теме