Fastjsonを使用してJSONファイルをJavaのオブジェクトに変換する

必要な依存関係

ここではfastjson-1.2.73
Mavenアドレスを使用していますhttps://mvnrepository.com/artifact/com.alibaba/fastjson

JSONファイルの内容

[
  {
    
    
    "_index": "index-1",
    "_type": "type-1",
    "_id": "111111",
    "_score": 7.8561087,
    "_source": {
    
    
      "rooms": [
        "222222"
      ],
      "nickName": "333333"
    }
  },
  {
    
    
    "_index": "index-2",
    "_type": "type-2",
    "_id": "444444",
    "_score": 7.8561087,
    "_source": {
    
    
      "rooms": [
        "555555"
      ],
      "nickName": "666666"
    }
  }
]

コード

需要:削除して_idroomsそしてrooms中元素的个数nickName

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.io.FileInputStream;
import java.io.IOException;

public class JSONUtil {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 获取文件的输入流对象
        FileInputStream fileInputStream = new FileInputStream("src/json3.json");
        int len;
        byte[] bytes = new byte[1024];
        StringBuilder stringBuffer = new StringBuilder();
        while ((len = fileInputStream.read(bytes)) != -1) {
    
    
            // 添加字符串到缓冲区
            stringBuffer.append(new String(bytes, 0, len));
        }
        // 关闭资源
        fileInputStream.close();
        // 使用fastjson将字符串转换为JSON
        JSONArray jsonArray = JSONObject.parseArray(stringBuffer.toString());
        // 便利对象去除我们需要的数据
        for (int i = 0; i < jsonArray.size(); i++) {
    
    
            JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
            String source = jsonObject.get("_source").toString();
            JSONObject jsonObject1 = JSONObject.parseObject(source);
            String rooms = jsonObject1.get("rooms").toString();
            JSONArray roomList = JSONArray.parseArray(rooms);
            String nickName = "";
            Object nickName1 = JSONObject.parseObject(source).get("nickName");
            if (nickName1 != null) {
    
    
                nickName = nickName1.toString();
            }
            // 将我们需要的数据输出到控制台
            System.out.println(jsonObject.get("_id") + " \t" + nickName + "\t" + roomList.size() + "\t" + rooms);
        }
    }
}

効果

ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/y1534414425/article/details/109172034