fastjsonを使用してjson文字列を解析する
2869 ワード
日常的な作業では、jsonは非常に一般的なデータフォーマットであり、キー値ペアが格納されていると理解できる.最近業務を分析する時、また2種類のjson文字列を処理したので、今日はどのように処理するかを皆さんに分かち合って、この方面の友达に少し助けてほしいです.皆さんにサイトを教えてあげますhttps://www.json.cn/、あなたが得たデータがjson形式かどうかを分析することができます.
私は自分でデータを作りました.必要なのは内部jsonのscoreです.
これはjson文字列のうち3つのjson文字列であることがわかります.
ここで必要なのはpidが0のnameを除いて、手に入れたものをつなぎ合わせることです.
ここでは最初のJsonセット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