1

次のようなjson応答文字列があります:

{"result":{"id":21456,"name":"3mm nail","type":"2" }}

これは私のコードです:

class rootObj{
    List<Result> result;

}
public class Result {
    @SerializedName("id")
    public String idItem;

    @SerializedName("name")
    public String name;    
}
public static void main(String[] args) throws Exception {
Gson gson = new Gson();
Result result = gson.fromJson(json,Result.class);
System.out.println(result.name);
}

しかし、結果はnullです:(事前にThx。

だから..このコードは私が目指していたものです:

class ResultData{

    private Result result;
    public class Result {
        private String id;
        private String name;

    }

}


...
Gson gson = new Gson();
ResultData resultData = new Gson().fromJson(json, ResultData.class);

System.out.println(resultData.result.id);
System.out.println(resultData.result.name);

Thx to BalusC は私にそれについてのアイデアを与えてくれました。 Java - ネストされた内にネストされたGsonの解析

4

2 に答える 2

2

JSON 文字列では、結果プロパティは配列ではなくオブジェクトです。したがって、2 つの Java クラス (rootObj と Result) で機能させるには、{braces} Original の周りに [brackets] を追加する必要があります。

{"result":{"id":21456,"name":"3mm nail","type":"2" }}

新しい

{"result":[{"id":21456,"name":"3mm nail","type":"2" }]}

このコードは私のために働きます:

import static org.junit.Assert.assertEquals;

import java.util.List;

import org.junit.Test;

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

public class TestGson {
    private static final String NAME = "3mm nail";

    @Test
    public void testList() {
        final String json = "{\"result\":[{\"id\":21456,\"name\":\"" + NAME + "\",\"type\":\"2\" }]}";
        Gson gson = new Gson();
        ListWrapper wrapper = gson.fromJson(json, ListWrapper.class);
        assertEquals(NAME, wrapper.result.get(0).name);
    }

    static class ListWrapper {
        List<Result> result;
    }

    static class ObjectWrapper {
        Result result;
    }

    static class Result {
        @SerializedName("id")
        public int idItem;

        @SerializedName("name")
        public String name;
    }

}
于 2013-03-29T12:34:33.533 に答える
0

これを参照してください..jsonを使用せず に解析する方法を説明していますGSON

于 2013-03-29T12:41:41.163 に答える