Webプロジェクト---fastjsonよりfastのjson解析器


私の前のブログでは、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   -      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);
    }