2

JSON データ

{
  "id": 8428514522228612,
  "name": "Order Acknowledgment",
  "columns": [
    {
      "id": 7701511984703364,
      "index": 0,
      "title": "Order#",
      "type": "TEXT_NUMBER",
      "primary": true
    }, {
      "id": 2072012450490244,
      "index": 1,
      "title": "Order Date",
      "type": "DATE"
    }
  ]
}

Javaオブジェクトを作成し、ID値を取得できる

MyJsonObject1 obj = gson.fromJson(line, MyJsonObject1.class);
System.out.println(obj.getId());

列はオブジェクト配列であるため、ループして列のキーとペアの値を取得する必要があります。列IDのみを取得する必要があるため、以下のコードを試しています

    SingleMap nextActionInfoMap = new Gson().fromJson((String) col,SingleMap.class);
int column_id = nextActionInfoMap.getId();
System.out.println(column_id);


class MyJsonObject1 {

private String id;
private String name;
private Object[] columns;

public Object[] getColumns() {
    return columns;
}

public void setColumns(JSONObject[] columns) {
    this.columns = columns;
}

public void setId(String id) {
    this.id = id;
}

public void setName(String name) {
    this.name = name;
}

public String getId() {
    return id;
}

public String getName() {
    return name;
}

}

public class SingleMap {

private int id;
private int index;
private String title;
private String type;
private String primary;

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public int getIndex() {
    return index;
}
public void setIndex(int index) {
    this.index = index;
}
public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public String getPrimary() {
    return primary;
}
public void setPrimary(String primary) {
    this.primary = primary;
}

}

しかし、私は得ています:

java.lang.ClassCastException: com.google.gson.internal.LinkedHashTreeMap cannot be cast to java.lang.String

この問題を解決するにはどうすればよいですか?

4

1 に答える 1