小伙看你根骨奇佳,潜力无限,来学PHP伐。
API アドレスによると http://www.imooc.com/api/Teacher?type=4&num=30
返された json データには 2 つの層があり、解析したのは 1 つの層だけです。当然、データ エラーが発生します。
DataBean
ルートグループ
上記は以下のツールで生成されています(やるところはたくさんあります)。詳細については、付録 1 を参照してください。 Ps. Android Studio には、より便利なプラグイン GsonFormat があります (座って自分で動かすことができます)。詳細については、付録 2 を参照してください
GsonFormat
次にデータ取得場所(实际上你写的只有这一段代码就解析好了。。)
实际上你写的只有这一段代码就解析好了。。
以上です。
付録 1: http://www.bejson.com/json2javapojo/付録 2: GsonFormat概要: http://www.jianshu.com/p/b83ea5e32ee1
余談になりますが、多くのネットワーク リクエスト フレームワークには標準の json リクエスト メソッドが付属しています。 個人的には、エンティティクラスは自分で作成したほうが便利だと思います。 :-D
fastJson を使用したことはありませんが、Gson を使用して解析すると非常に高速です。 。 。 JSON データ形式に従って次の Bean を定義します。 注: 内部的にネストされたクラスは静的である必要があります。
Gson を使用して解析します:
このようにして取得した Bean オブジェクト temp は List<Info> ですが、 temp.getInfo().get(i) を使用すると内部クラス Info を取得できます。 。 。 。 シャオバイは初めて質問に答えました。 。 。 。私を許してください。 。 。
datas = JSON.parseArray(jsonObject.toString(), Bean.class);
jsonObject.toString() が元の JSON 文字列の場合、この値で何が得られるかを見てください。
まず、JsonArray data=Json.getJsonArray("data") を直接使用することは完了できません...
機能するメソッドは次のとおりです (Json データをよく理解していないので、勉強する必要があります): パラメーターによって返された jsonObject を FastJson の JsonObject に変換すると、3 つの項目のコレクションが得られます。これをどう理解しますか?次に、このコレクションから「データ」配列を取得し、FastJson の JsonArray を使用してコレクションに変換します...
本当の知識を見つけるには、まだ勉強して研究する必要があります
=======================
後で、この Json データは次のようになったことがわかりました。これは 3 つのデータの集合であり、データ集合を直接取得するのは間違っています...
====================================データのデータを取得した後、 JavaBeans を直接関連付けることができるため、従来の方法に比べて面倒なコードを大幅に節約できます。ここでは自動的に関連付けられます。
これは注意すべき重要な点であり、原文でも間違っています。
List<Bean> datas=null; 最初に新しい ArrayList を作成してからデータを関連付ける必要はありません。データが自動的に関連付けられると、データが自動的に保存されます。 ..
=================================fastJson の一般的に使用されるメソッドについてメモを投稿します
Json 文字列データがある場合は、まずそれを解析してから、fastJson 操作を実行する必要があります。たとえば、この例では、volley によって返された jsonOject を直接使用することはできません。これは単なる文字列です。 ? ?ただし、fastJson の解析と変換後には使用できます...
==============================================
ベストアンサーを与えたネチズンは、JsonFormat が非常に便利だと紹介しました...JsonFormat を使用すると、すべての問題が解決されます。
fastJson の解決策は次のとおりです。 JsonFormat を使用して Bean などの javaBean クラスを事前に生成し、次の 2 行のコードで完成させます。
=========================================== === 上記のヒントに追加するには、Gson を使用して問題を解決します。Gson には 3 行のコードが必要なようです: JsonFormat の操作は同じです...
要約すると、fastJson は 2 文のコードでデータを取得でき、Gson は 3 文でデータを取得できます
API アドレスによると http://www.imooc.com/api/Teacher?type=4&num=30
返された json データには 2 つの層があり、解析したのは 1 つの層だけです。当然、データ エラーが発生します。
の 2 つのレイヤーを作成する必要があります リーリーDataBean
ルートグループ
リーリー上記は以下のツールで生成されています(やるところはたくさんあります)。詳細については、付録 1
。を参照してください。 Ps. Android Studio には、より便利なプラグイン
GsonFormat
があります (座って自分で動かすことができます)。詳細については、付録 2 を参照してください次にデータ取得場所(
リーリー实际上你写的只有这一段代码就解析好了。。
)以上です。
付録
付録 1: http://www.bejson.com/json2javapojo/
付録 2:
GsonFormat
概要: http://www.jianshu.com/p/b83ea5e32ee1余談になりますが、多くのネットワーク リクエスト フレームワークには標準の json リクエスト メソッドが付属しています。
個人的には、エンティティクラスは自分で作成したほうが便利だと思います。 :-D
fastJson を使用したことはありませんが、Gson を使用して解析すると非常に高速です。 。 。
リーリーJSON データ形式に従って次の Bean を定義します。
注: 内部的にネストされたクラスは静的である必要があります。
Gson を使用して解析します:
リーリーこのようにして取得した Bean オブジェクト temp は List<Info> ですが、
temp.getInfo().get(i) を使用すると内部クラス Info を取得できます。 。 。 。
シャオバイは初めて質問に答えました。 。 。 。私を許してください。 。 。
datas = JSON.parseArray(jsonObject.toString(), Bean.class);
jsonObject.toString() が元の JSON 文字列の場合、この値で何が得られるかを見てください。
まず、JsonArray data=Json.getJsonArray("data") を直接使用することは完了できません...
機能するメソッドは次のとおりです (Json データをよく理解していないので、勉強する必要があります): パラメーターによって返された jsonObject を FastJson の JsonObject に変換すると、3 つの項目のコレクションが得られます。これをどう理解しますか?次に、このコレクションから「データ」配列を取得し、FastJson の JsonArray を使用してコレクションに変換します...
リーリー本当の知識を見つけるには、まだ勉強して研究する必要があります
=======================
後で、この Json データは次のようになったことがわかりました。これは 3 つのデータの集合であり、データ集合を直接取得するのは間違っています...
====================================
リーリーデータのデータを取得した後、 JavaBeans を直接関連付けることができるため、従来の方法に比べて面倒なコードを大幅に節約できます。ここでは自動的に関連付けられます。
これは注意すべき重要な点であり、原文でも間違っています。
List<Bean> datas=null; 最初に新しい ArrayList を作成してからデータを関連付ける必要はありません。データが自動的に関連付けられると、データが自動的に保存されます。 ..
=================================
リーリーfastJson の一般的に使用されるメソッドについてメモを投稿します
Json 文字列データがある場合は、まずそれを解析してから、fastJson 操作を実行する必要があります。たとえば、この例では、volley によって返された jsonOject を直接使用することはできません。これは単なる文字列です。 ? ?ただし、fastJson の解析と変換後には使用できます...
==============================================
ベストアンサーを与えたネチズンは、JsonFormat が非常に便利だと紹介しました...JsonFormat を使用すると、すべての問題が解決されます。
fastJson の解決策は次のとおりです。
リーリーJsonFormat を使用して Bean などの javaBean クラスを事前に生成し、次の 2 行のコードで完成させます。
=========================================== ===
リーリー上記のヒントに追加するには、Gson を使用して問題を解決します。Gson には 3 行のコードが必要なようです:
JsonFormat の操作は同じです...
要約すると、fastJson は 2 文のコードでデータを取得でき、Gson は 3 文でデータを取得できます