当前位置: 首页 > 面试题库 >

解析json错误:java.lang.IllegalStateException:不是JSON对象:

桂高昂
2023-03-14
问题内容

我正在尝试解析包含一个城市的大型json文件(以下是文件中的前两个城市):

  [
  {
    "id": 707860,
    "name": "Hurzuf",
    "country": "UA",
    "coord": {
      "lon": 34.283333,
      "lat": 44.549999
    }
  },
  {
    "id": 519188,
    "name": "Novinki",
    "country": "RU",
    "coord": {
      "lon": 37.666668,
      "lat": 55.683334
    }
  } ]

我想获取其“名称”值与字符串匹配的城市的ID:

    JsonParser parser = new JsonParser();

    JsonElement jsontree = parser.parse(new FileReader("C:/Users/kevin/Eclipse-workspace-new/kevinzhou_CSCI201_assignment3/WebContent/city.list.json"));
    JsonElement je = jsontree.getAsJsonObject();
    JsonArray ja = je.getAsJsonArray();
    for (Object o : ja)
    {
        JsonObject city = (JsonObject) o;
        if(cityName == city.get("name").getAsString())
        {
            System.out.println(city.get("id").getAsString());
        }
    }

但是,出现以下错误:java.lang.IllegalStateException: Not a JSON Object:
然后冒号后,它吐出了整个文件。


问题答案:

改成

// JsonElement je = jsontree.getAsJsonObject();
JsonArray ja = jsontree.getAsJsonArray();

因为它在顶层包含一个数组



 类似资料:
  • 问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的

  • 和 是我用来获取JSON并对其进行解析的类。但是当我运行第一个时,它会报告以下堆栈跟踪: 它告诉我添加JsonReader。将lenient(true)设置为我的代码,但我的代码不使用JsonReader。那么如何将setLenient(true)添加到代码中? 编辑:添加API响应(格式化):

  • 我有以下命令。我想循环使用此键和值,即对于冰/冷的项目,打印“值” 我试过这个: 却给我错误

  • 我一直得到一个JSON解析器错误,每次我尝试连接从Android到php帐户。下面你会看到我得到的错误: 谁能帮帮我吗。。。 PHP代码: Android代码: Android代码: 公共JSONObject getJSONFromUrl(字符串url,列表参数){ 注册用户JSONObject PhP警告: php代码: 链接89是$no_of_rows 用户表结构: mysql_error:

  • 我很难找到解析JSONArray的方法。看起来是这样的: 如果JSON的编写方式不同(换句话说,如果返回的是JSON对象而不是对象数组),我知道如何解析它。但这是我所拥有的一切,我必须要去做。 *编辑:这是一个有效的json。我用这个json做了一个iPhone的应用程序,现在我需要为Android做,但无法解决这个问题。外面有很多例子,但它们都是与JSONObject相关的。我需要一些用于JSO

  • 问题内容: 我无法理解如何使用Visual .NET将JSON字符串解析为c#对象。任务很简单,但是我仍然迷路…我得到了这个字符串: 这是我尝试进行消毒的代码: 我不知道在’<’和’>’之间放置什么,从网上阅读的内容中,我必须为其创建一个新的类。另外,如何获得输出?一个例子会有所帮助! 问题答案: 创建一个可以反序列化您的JSON的新类,例如: