【问题标题】:reading from a json file in java从java中的json文件读取
【发布时间】:2023-03-26 20:53:01
【问题描述】:

您好,我一直在尝试使用 json.simple 库在 java 中读取 JSON 文件,我阅读了十多个关于如何执行此操作的教程,但最后我的 JSON 文件的编写方式导致我很麻烦。

{
"0": {
    "POI": "43df8ad6f964a520b92e1fe3",
    "latitude": 40.731356448341,
    "longitude": -73.988671302795,
    "photos": "https:\/\/irs3.4sqi.net\/img\/general\/612x612\/343235_eezF7KZ55QpdVVNuMTFOO86bikjUbmrxb1IEuf2C1uI.jpg",
    "POI_category_id": "Arts & Entertainment",
    "POI_name": "AMC Loews Village 7"
  },
  "1": {
    "POI": "4bfec352daf9c9b64038f9ef",
    "latitude": 40.75358312925,
    "longitude": -74.214450350548,
    "photos": "https:\/\/irs1.4sqi.net\/img\/general\/540x720\/c5xfqE_ajHOZb1LBtUBEdYNlc9aQ12EoPcavI_dVkDw.jpg",
    "POI_category_id": "Food",
    "POI_name": "Wendy's"
  }
...
}

我的问题是我不知道如何获得第一个值 "0":, "1": 旁边没有键,所以我可以使用 .get("KEY") 函数。 我尝试了jsobj.get(i) 之类的方法,然后每次将i 的值增加一,但这根本不起作用。

这是我第一次尝试使用 json 做某事,所以我不知道我尝试做的是否正确。 提前致谢

【问题讨论】:

  • 你使用的是哪个库?
  • 如果您使用org.json 库来表示JSON,您可以读取整个文件并将内容存储在StringBuilder 中,然后使用该StringBuilder.toString() 来实例化一个new JSONObject(StringBuilder.toString()).
  • “我尝试了类似 jsobj.get(i) 的方法,然后每次都将 i 的值加一,但这根本不起作用。” - 这应该可以正常工作,但请记住 i 在这种情况下需要是一个字符串。您能否添加一个minimal reproducible example,以便我们了解发生了什么?
  • org.json.simple 是我正在使用的库@MạnhQuyếtNguyễn
  • @berry120 出于好奇,我在 2 分钟前亲自尝试过,效果不错,但我不知道提取数据的最佳方法是什么:/

标签: java json json-simple


【解决方案1】:

假设您的 JSON 存储在一个名为 json 的字符串中:

JSONObject obj = (JSONObject)new JSONParser().parse(json);
JSONObject ele;
for(int i=0 ; (ele=(JSONObject)obj.get(Integer.toString(i)))!=null ; i++) {
    System.out.println("Index " + i + ":");
    System.out.println(ele.get("POI"));
    System.out.println(ele.get("latitude"));
    System.out.println(ele.get("longitude"));
    ///etc.
}

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多