为了账号安全,请及时绑定邮箱和手机立即绑定

如何从文件解析此 json

如何从文件解析此 json

尚方宝剑之说 2022-09-22 16:12:31

如何使用简单Json库解析这个json文件,格式是这样的:


谢谢


我的文件看起来像这样:里面有Json数组的json文件;


 {"data":[{"host":"hostname1","port":2049,"open":"false", "info":" "},  

 {"host":"hostname1","port":2049,"open":"false", "info":" "}, 

 {"host":"hostname2","port":2049,"open":"false", "info":" "}, 

 {"host":"hostname3","port":2049,"open":"false", "info":" "}, 

 {"host":"hostname4","port":443,"open":"false", "info":" "}, 

 {"host":"hostname5","port":443,"open":"false","info":" "}, 

 {"host":"hostname6","port":61208,"open":"false","info":" "}, 

 {"host":"hostname7","port":139,"open":"false","info":" "}]}  

此时此刻我的代码:


JSONParser parser = new JSONParser();

       try {

           Object obj = parser.parse(new FileReader("D:/file.json"));

           JSONArray jsonObject = (JSONArray) obj;

           JSONObject arr = (JSONObject) jsonObject.get(0);

           JSONArray arguments = (JSONArray) arr.get("arguments");

           System.out.println("arguments>>>>>>>>> "+arguments);

           for(int i = 0 ; i< arguments.size() ;i++){

               JSONObject object = (JSONObject) arguments.get(i);

               System.out.println(object);

               return object;

           }

       } catch (Exception e) {

           e.printStackTrace();

       }

     return null;

我手动做了这个:


//data


           JSONObject obj1 = new JSONObject();

           obj1.put("host", "mkyong.com");

           obj1.put("port", "555");

           obj1.put("open", "false");

           obj1.put("info", "");


           JSONObject obj2 = new JSONObject();

           obj2.put("host", "mkyong.com");

           obj2.put("port", "555");

           obj2.put("open", "false");

           obj2.put("info", "");

           JSONArray list = new JSONArray();

           list.add(obj2);


           JSONObject datajson = new JSONObject();

           datajson.put("data", list);


查看完整描述

1 回答

?
波斯汪

TA贡献1478条经验 获得超4个赞

它看起来像一个旧的谷歌图书馆。我认为您需要切换到 .下面是演示如何读取给定 .这里的键是原始对象将对象数组作为键的值。JSON.simpleGSONJSONJSONJSONdata


import java.io.FileReader;

import java.util.Iterator;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;


/**

 *

 * @author blj0011

 */

public class JsonSimpleReaderExample

{

    public static void main(String[] args)

    {

        JSONParser parser = new JSONParser();


        try {

            Object obj = parser.parse(new FileReader("file.json"));

            JSONObject jsonObject = (JSONObject) obj;


            JSONArray array = (JSONArray) jsonObject.get("data");

            Iterator<JSONObject> iterator = array.iterator();

            while (iterator.hasNext()) {

                JSONObject jsonObjectInJsonArray = (JSONObject) iterator.next();

                System.out.println(jsonObjectInJsonArray.get("host"));

            }

        }

        catch (Exception ex) {

            System.out.println(ex.toString());

        }

    }

}

输出:


hostname1

hostname1

hostname2

hostname3

hostname4

hostname5

hostname6

hostname7


查看完整回答
反对 回复 4天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信