1

私はJson文字列をデコードするために何かをまとめようとしていますが、あまり運がありません。

現在、ファイルを読み取ってそのコンポーネントに解析しようとしています。ステータス値は問題なく読み取ることができますが、リストを読み取ろうとするとnullになり、その理由がわかりません。

誰かが私が間違っていることを私に見せてもらえますか?

ファイルの内容は次のとおりです。

{
    "results" : [
        { 
            "long_name" : "Long Name 1",
            "short_name" : "Short Name 1"
        },
        {
            "long_name" : "Long Name 2",
            "short_name" : "Short Name 2"
        }
    ],
    "status" : "OK"
}

読み取ったファイルを解析するために使用しているコードは次のとおりです。

            BufferedReader br =
            new BufferedReader( new FileReader(aFile));
            StringBuilder builder = new StringBuilder();
            String st;
            for (String line = null; (line = br.readLine()) != null;) 
            {
                st = line.trim();
                builder.append(st);
            }
            br.close();
            String data = builder.toString();
            Results rslt = new Gson().fromJson( data, Results.class );
            List<ResultsData> resultsData = rslt.getResultsData();
            System.out.println( "ResultsData      : "+resultsData );       // This is null
            System.out.println( "Status           : "+rslt.getStatus() );  // This is OK

解析に使用している2つのクラスは次のとおりです。

import java.util.List;

public class Results {

    private List<ResultsData> resultsData;
    public List<ResultsData> getResultsData() { return resultsData; }
    public void setResultsData( List<ResultsData> l ) { resultsData = l; }

    private String status;
    public String getStatus() { return status; }
    public void setStatus( String s ) { status = s; }

}

public class ResultsData {

    private String long_name = "";
    public String getLong_name() {return long_name;}
    public void setLong_name( String s ) { long_name = s; }

    private String short_name = "";
    public String getShort_name() {return short_name;}
    public void setShort_name( String s ) { short_name = s; }

}
4

1 に答える 1

1

これは、JSonファイルに記載されており、クラスresults内の対応するフィールドの名前がであるためだと思います。言い換えると、スキーマが一致しません。では、スキーマはどのように見えますか?ResultresultsData

于 2012-04-03T20:33:25.100 に答える