Webプロジェクト---fastjsonよりfastのjson解析器
4254 ワード
私の前のブログでは、GSONがJavabeanとjsonの間の変換に使用されることを議論し、前のバックグラウンドデータのインタラクションの統一を容易に完成させたが、後にJavaで爬虫類を書いたとき、gsonよりも強いfastjsonを発見した.彼のJavaに対する解析効率はもっと良く、Gsonよりも使いやすい
FastJson
このときアリババの次のオープンソースフレームワークは、jsonデータの解析に使用することができます.それはその名前と同じように、速く、機能が強いと同時に、他のクラスライブラリに依存していません.主に以下の3つのクラスがあります. JSON:fastjsonの解析器、JSONデータ文字列とJSONオブジェクトおよびJavaBeanとの間の変換 用 JSONObject:提供されたjsonオブジェクト JSOnArray:fastJsonが提供するjsonの配列オブジェクト 次はその使い方の説明です
まず、mavenのプロファイルpomでxmlにインポートされた依存度:
com.alibaba fastjson 1.1.23
シーケンス化シーケンス化とは、JavaBeanオブジェクトをJSON形式に変換する文字列のことです
String objJson = JSON.toJSONString(Object object);//オブジェクトを入力し、オブジェクトをJSON文字列に変換
逆シーケンス化逆シーケンス化とは、JSON形式の文字列をJava Beanオブジェクトに変換することです.
Person person = JSON.parseObject(personJson, Person .class); JSOnObject,JSOnArrayはJSONの2つのサブクラス JSONObjectはMap に相当する JSOnArray相当List ≪インスタンス|Instance|emdw≫
いくつかのjson形式の文字列を定義する必要があります
//json文字列-単純オブジェクト型private static final String JSON_OBJ_STR = “{“studentName”:“lily”,“studentAge”:12}”;
//json文字列-配列タイプprivate static final String JSON_ARRAY_STR = “[{“studentName”:“lily”,“studentAge”:12},{“studentName”:“lucy”,“studentAge”:15}]”;
//複雑な形式json文字列private static final String COMPLEX_JSON_STR = “{“teacherName”:“crystall”,“teacherAge”:27,“course”:{“courseName”:“english”,“code”:1270},“students”:[{“studentName”:“lily”,“studentAge”:12},{“studentName”:“lucy”,“studentAge”:15}]}”;
json文字列-単純オブジェクト型とJSOnObject間の変換:
json文字列-単純オブジェクト型とjavaBean間の変換
単純javaBeanとjsonオブジェクト間の変換
FastJson
このときアリババの次のオープンソースフレームワークは、jsonデータの解析に使用することができます.それはその名前と同じように、速く、機能が強いと同時に、他のクラスライブラリに依存していません.主に以下の3つのクラスがあります.
まず、mavenのプロファイルpomでxmlにインポートされた依存度:
com.alibaba fastjson 1.1.23
シーケンス化シーケンス化とは、JavaBeanオブジェクトをJSON形式に変換する文字列のことです
String objJson = JSON.toJSONString(Object object);//オブジェクトを入力し、オブジェクトをJSON文字列に変換
逆シーケンス化逆シーケンス化とは、JSON形式の文字列をJava Beanオブジェクトに変換することです.
Person person = JSON.parseObject(personJson, Person .class);
いくつかのjson形式の文字列を定義する必要があります
//json文字列-単純オブジェクト型private static final String JSON_OBJ_STR = “{“studentName”:“lily”,“studentAge”:12}”;
//json文字列-配列タイプprivate static final String JSON_ARRAY_STR = “[{“studentName”:“lily”,“studentAge”:12},{“studentName”:“lucy”,“studentAge”:15}]”;
//複雑な形式json文字列private static final String COMPLEX_JSON_STR = “{“teacherName”:“crystall”,“teacherAge”:27,“course”:{“courseName”:“english”,“code”:1270},“students”:[{“studentName”:“lily”,“studentAge”:12},{“studentName”:“lucy”,“studentAge”:15}]}”;
json文字列-単純オブジェクト型とJSOnObject間の変換:
/**
* json - JSONObject
*/
@Test
public void testJSONStrToJSONObject() {
JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
System.out.println("studentName: " + jsonObject.getString("studentName") + ":" + " studentAge: "
+ jsonObject.getInteger("studentAge"));
}
/**
* JSONObject json -
*/
@Test
public void testJSONObjectToJSONStr() {
// JSONObject, json
JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
//
String jsonString = JSONObject.toJSONString(jsonObject);
//
//String jsonString = jsonObject.toJSONString();
System.out.println(jsonString);
}
json文字列-単純オブジェクト型とjavaBean間の変換
/**
* json - JavaBean
*/
@Test
public void testJSONStrToJavaBeanObj() {
//
JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
String studentName = jsonObject.getString("studentName");
Integer studentAge = jsonObject.getInteger("studentAge");
//Student student = new Student(studentName, studentAge);
// , TypeReference , protected ,
//Student student = JSONObject.parseObject(JSON_OBJ_STR, new TypeReference() {});
// , Gson
Student student = JSONObject.parseObject(JSON_OBJ_STR, Student.class);
System.out.println(student);
}
/**
* JavaBean json -
*/
@Test
public void testJavaBeanObjToJSONStr() {
Student student = new Student("lily", 12);
String jsonString = JSONObject.toJSONString(student);
System.out.println(jsonString);
}
単純javaBeanとjsonオブジェクト間の変換
/**
* JavaBean_obj json
*/
@Test
public void testJavaBeanToJSONObject(){
// JavaBean_obj
Student student = new Student("lily", 12);
//
String jsonString = JSONObject.toJSONString(student);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
System.out.println(jsonObject);
//
JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(student);
System.out.println(jsonObject1);
}
/**
* json JavaBean_obj
*/
@Test
public void testJSONObjectToJavaBean(){
// json
JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
// , TypeReference , protected ,
Student student = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference() {});
System.out.println(student);
// , Gson
Student student1 = JSONObject.parseObject(jsonObject.toJSONString(), Student.class);
System.out.println(student1);
}