fastjsonを使用してjson文字列を解析する

2869 ワード

日常的な作業では、jsonは非常に一般的なデータフォーマットであり、キー値ペアが格納されていると理解できる.最近業務を分析する時、また2種類のjson文字列を処理したので、今日はどのように処理するかを皆さんに分かち合って、この方面の友达に少し助けてほしいです.皆さんにサイトを教えてあげますhttps://www.json.cn/、あなたが得たデータがjson形式かどうかを分析することができます.

1.JsonセットJson


私は自分でデータを作りました.必要なのは内部jsonのscoreです.
{"842":{"useranswer":"3407|3408","score":0},"846":{"useranswer":"3414","score":0},"847":{"useranswer":"3499","score":2}}

これはjson文字列のうち3つのjson文字列であることがわかります.
import com.alibaba.fastjson.JSONObject;

import java.util.Iterator;
import java.util.Set;

public class JsonAndJson {
    public static void main(String[] args) {
        String jsonStr="{\"842\":{\"useranswer\":\"3407|3408\",\"score\":0},\"846\":{\"useranswer\":\"3414\",\"score\":0},\"847\":{\"useranswer\":\"3499\",\"score\":2}}";
        //         JSONObject
        JSONObject outJson = JSONObject.parseObject(jsonStr);
        //     JSON key        ,        ,          json
        Set jsonSet = outJson.keySet();
        Iterator iterator = jsonSet.iterator();
        while (iterator.hasNext()){
           //           json key
            String json = iterator.next();
            //    json   
            String string = outJson.getString(json);
            //   json      object  
            JSONObject inJson = JSONObject.parseObject(string);
            //  score,  value 
            String score = inJson.getString("score");
            System.out.println(score);
        }
    }
}


2.Json配列


ここで必要なのはpidが0のnameを除いて、手に入れたものをつなぎ合わせることです.
[{"id":50,"name":"Python","pId":0},{"id":77,"name":"web  ","pId":50},{"id":78,"name":"Linux&   ","pId":50}]

ここでは最初のJsonセットJsonとは異なる操作が必要です
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


public class JsonArray {
    public static void main(String[] args) {
        String jsonArray="[{\"id\":50,\"name\":\"Python\",\"pId\":0},{\"id\":77,\"name\":\"web  \",\"pId\":50},{\"id\":78,\"name\":\"Linux&   \",\"pId\":50}]
"; StringBuffer sb=new StringBuffer(); // JSON parseArray , jsonArray object JSONArray objects = JSON.parseArray(jsonArray); for(int i=0;i