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

从嵌套的JSON对象中检索值

苗信鸥
2023-03-14
问题内容

我有要解析的JSON文件。JSON文件(“ myfile”)的格式如下:

{
    "LanguageLevels": {
        "1": "Początkujący",
        "2": "ŚrednioZaawansowany",
        "3": "Zaawansowany",
        "4": "Ekspert"
    }
}

我想从语言级别检索键2的值(ŚrednioZaawansowany)。

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonSimpleExample {
public static void main(String[] args) {

JSONParser parser = new JSONParser();

try {

    Object obj = parser.parse(new FileReader("myfile"); 
    JSONObject jsonObject = (JSONObject) obj;
    JSONObject jsonChildObject = (JSONObject)jsonObject.get("LanguageLevels");

接下来做什么?我如何迭代呢?


问题答案:

也许您没有使用Java库的最新版本的JSON。

json-simple已有很长时间没有更新,而JSON-Java2个月前已更新。

JSON- Java可以在GitHub上找到,这是其仓库的链接:https : //github.com/douglascrockford/JSON-
java

切换库后,您可以在下面参考我的示例代码:

public static void main(String[] args) {
    String JSON = "{\"LanguageLevels\":{\"1\":\"Pocz\\u0105tkuj\\u0105cy\",\"2\":\"\\u015arednioZaawansowany\",\"3\":\"Zaawansowany\",\"4\":\"Ekspert\"}}\n";

    JSONObject jsonObject = new JSONObject(JSON);
    JSONObject getSth = jsonObject.getJSONObject("LanguageLevels");
    Object level = getSth.get("2");

    System.out.println(level);
}

并且作为JSON-Java开放源代码,您可以阅读代码及其文档,它们将指导您完成操作。

希望对您有所帮助。



 类似资料:
  • 我创造了一个这样的形式 如果它没有验证,我将重新显示填充了数据的表单。填充问题数据并不难 但是,我无法从答案模型(具有内容和链接字段)的会话哈希中获取嵌套值。这不起作用。 我觉得是因为hash对象中的0,1,2迭代。例如,这是hash对象的一个片段(完整显示在下面) 但我不知道在构建问题答案时如何表达这一点 当我尝试构建时,在尝试从哈希对象中提取数据时,我不会表示迭代。你能解释一下我如何修改这一行

  • 我有一个带有嵌套字段的JSON: 我正在使用JSONPATH从嵌套中获取。 我已经将我的JSON文本粘贴到了http://jsonpath.com/这个网站上;并且在使用了这一行之后: 我得到了这个: 使用此行后: 我得到了这个: 我尝试返回(输出)的内容如下: 但是我找不到合适的语法来将这两个组合在一行中,并用一个JSONPATH查询返回它们。

  • 首先,如果这已经发布,请道歉。我花了一些时间研究,但还没有找到解决方案。 我的目标是访问vb.net中web请求的各种JSON响应中的数据。我遇到了嵌套响应的问题;例如: 我的课程是这样的: 反序列化JSON: 这似乎工作正常,但是我不知道如何访问< code>href值,在本例中是“https://example.com/test2/”。

  • 问题内容: 有一个小问题上的话题,但他们都不来覆盖我的情况,因此我创建一个新的。 我有如下的JSON: 有没有办法解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct? 我现在采用的解决方案如下: 这是简化版本,请忽略详细信息。如您所见,我希望能够解析并将其值分配给 我见过有人在使用地图,但这不是我的情况。除了一些特定的元素外,我基本上不关心(一个大对象)的内容。 在这种

  • 问题内容: 您有任何想法如何从对象中检索全部吗?我需要将 for循环 更改为 流 “同类”代码。 非常感谢任何帮助 问题答案: 您可以与涉及的串联和三元运算符混合使用,例如:

  • 问题内容: 我正在尝试解析JSON对象,其中的一部分看起来像这样: 等等.... 到目前为止,通过执行以下操作,我可以非常简单地解析: 但是,当我尝试将其用作“名称:”时,它将不起作用。 我试过了: 当我尝试这样做时,我得到“找不到JSONObject [业务]”。 当我尝试: 我得到了预期的“找不到JSONObject [名称]”。 我在这里做错了什么?我缺少一些基本的东西。 问题答案: 好吧,