最初の方法は、JSON-LIBを使用することです。
2番目の方法は、ジャクソンを使用することです。
最初の2つの方法は、比較的単純なPOJOオブジェクトにとって比較的簡単です。ただし、ネストされた多層データと比較して、複雑さは直接増加します。
3番目の方法は、GoogleのGSONを使用して解決されます。 Androidを書いた人は誰でも、このことがGoogleによって生成されていることを知っています。使用するのは自然で爽やかで、値の方法は非常に柔軟です。すべての複雑なJSON値は基本的に行われます。
GSONには2つの概念があります。 1つはjsonobjectとjsonarrayです。特にコードに依存します
コードコピーは次のとおりです。
パッケージcom.mycompany.gsondata;
com.google.gson.jsonarrayをインポートします。
com.google.gson.jsonobjectをインポートします。
com.google.gson.jsonparserをインポートします。
/**
* こんにちは世界!
*
*/
パブリッククラスアプリ{
public static void main(string [] args){
文字列jsondata = "{/" questionnaired/": /"qntest/"、/"asserresults/":[{/"questionid/":/"qstest01/"、/"ansercontent/":/"CFB7F441-9086-11E3-8CF8-000C2945C442/"}、{/"/"/" questionid/":/" qstest01/"、/ "ansercontent/":/"CFB7F441-9086-11E3-8CF8-000C2945C442/"}、{/"questid/":/"qstest03/"、/"ansercontent/":/"6b3a9cce-908888888-11e3-8CF8-000C2945 、A0863 31D-9087-11E3-8CF8-000C2945C442/"}、{/" questionid/":/" qstest01/"、/" ansercontent/":/"/"/"/"/"/"/"/" questionid/":/" qstest0 5/"、/" ansercontent/":/"テストテストテキストフィルインザブランク/"}、{/" questionid/":/" qstest06/"、/" ansercontent/":/" 3/" }、{/"questionid /":/"qstest07/",/" ansercontent/":/"2.2/"}]} ";
jsonObject root = new jsonparser()。parse(jsondata).getasjsonobject();
system.out.println(root.get( "questionnaireid")。toString()); //ルートノード値は直接取得されます
jsonarray Answerlist = root.getasjsonarray( "asserresults"); //配列を取得します
for(int i = 0; i <Answerlist.size(); i ++){
system.out.println(Answerlist.get(i).getasjsonobject()。get( "questionid")。toString());
system.out.println(Answerlist.get(i).getasjsonobject()。
}
}
}