JAvaのjsonデータ解析:サードパーティfastJsonによる解析データ

4120 ワード

json構文jsonテキストファイルとXMLテキストファイルには多くの類似点があり、データ情報を格納・伝送するためのメディアjsonは、ファイルに応答することによってデータの担体として機能するだけでなく、構文を満たす文字列によってデータの担体として機能することもできる.これらの文字列をjson文字列jsonにおけるデータ称格納は主に{}と[]によって格納される.{}に格納されているのは二列集合であり、辞書として理解できる.[]に格納されているのは単列集合であり、配列{}辞書にはkey、valueの形式で格納されていると理解できる.keyのデータ型は文字列タイプのみであり、valueは任意のデータ型であり、データを取得するのもkeyによって値を取得する[]配列である.jsonデータの解析はjson解析の場合、第三者を使う必要があります.現在一般的に使われているのはアリババのfastjsonのjarパッケージです.次にfastjsonを用いてデータの解析方法を学びます.jsonデータの解析は、解析するjsonファイルのパスを取得する2入力ストリームを介してjsonファイルを読み出し、json文字列に変換する3 json文字列を取得した後、json文字列のjsonの{}と[]に基づいてデータを階層的に解析する4解析対象を作成して解析したデータを受信する私たちはjsonデータを解析し、主にjson文字列を操作する具体的な注意事項であり、例では簡単なjson文字列を解析することを説明します.
//          json     json   
String jsonString = "{\"name\":\"  \",\"gender\":\" \",\"isStudent\" : true,\"age\" : 18}";//  :"\ \"       {}     ,    \\       
//     fastJson         json  
//         :fastJson                   
//   :JSONObject JSONArray:      json     {},         JSONObject   ,          {},         JSONObject   
JSONObject obj = JSON.parseObject(jsonString);//  JSONObject,        map
String name = obj.getString("name");//  key    value
int age = obj.getIntValue("age");//  key   age
Boolean isStudent = obj.getBoolean("isStudent");

辞書と配列のネストされたjsonデータを見てみましょう.
//json   
String jsonString = "{\"student\":{\"name\":\"  \",\"age\":18}}";
//  json      {},     JSONArray
JSONObject obj = JSON.parseObject(jsonString);
JSONObject obj2 = obj.getJSONObject("student");//  key         {},   JSONObject      
String name = array.getString("name");//  key  value
int age = array.getIntValue("age");

解析データを受信するために使用されるクラスはすべてシステムクラスであり、次に、解析データを受信するために独自のクラスを使用します.
//    Student 
public class Student
{
String name;
int age;
//     set      
Public void setName(String name)
{
this.name = name;
}
Public void setAge(int age)
{
this.age = age;
}
}
//json   
String jsonString = "{\"student\":{\"name\":\"  \",\"age\":18}}";
JSONObject obj = JSON.parseObject(jsonString);
JSONObject obj2 = obj.getJSONObject("student");//  student   value,   {},       JSONObject  
// value   string  
String  studentString = obj2.toJsonString();
//JSON             ,   key  Student         ,     ,          Student  set       ,  Student      set  ,          ,      ,    ,               
Student student = JSON.parse(studentString,Student.class);