当前位置: 首页 > 知识库问答 >
问题:

在Java中从JSON获取子字符串

慎懿轩
2023-03-14

我有这样一个JSON文件:

{
  "request": "...",
  "response": {
    "success": <true/false>,
    .......
    "user": {
      "id": <user id>,
      "username": <username>,
      "profilePictureURL": <url or null>
    },
  }
}

我需要得到回应。使用者用户名值。我试过这个:

                    Response responseuser = new OkHttpClient().newCall(requesthttpuser).execute();
                    JSONObject jsonuser = new JSONObject(responseuser.body().string());
                    responseuser.body().close();
                    JSONObject user = jsonuser.getJSONObject("response").getJSONObject("user");
                    String username = user.getString("username");

但我得到了这个错误:

org.json.JSONException: JSONObject["user"] not found.

怎么修,肯定有办法,就是找不到。

共有2个答案

印宏阔
2023-03-14

因此,如果您使用jsonPath,您可以通过编写以下表达式来获取您的用户名属性:$.response.user.username

从上面开始,请前往jsonpath。com并在json上尝试上述jsonPath表达式:

{
  "request": "...",
  "response": {
    "success": true,
    "user": {
      "id": "123",
      "username": "Janos",
      "profilePictureURL": "http://something.com/jpg"
    }
  }
}

您将能够在右侧窗格中观察到表达式的评估。

请阅读JsonPath文档中的更多内容

在Java中如何使用该表达式如下:

  1. Maven依赖项:
    <!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path -->
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.7.0</version>
    </dependency>
var userName = (String) JsonPath.read(responseuser, "$.response.user.username");

JsonPath。read(yourJson,jsonPathExpression)是一个静态函数,可以开箱即用。在获得用户名后,您可以执行其他操作。

我希望这能有所帮助。如果你还有任何问题,请告诉我。

许照
2023-03-14

对我来说就像org.json魅力:

 类似资料:
  • 问题内容: 我有一个字符串(基本上是遵循命名约定的文件名) 我想在第一个(即一个点)之前提取子字符串 在java doc api中,我似乎找不到在String中执行此操作的方法。 我想念什么吗?怎么做? 问题答案: 看看和。 确保检查的-1 。

  • 问题内容: 我试图解析JSON字符串“ {‘test’:‘100.00’}”并使用GSON库获取值:100.00。我的代码如下所示: 我的结果看起来像这样:“ 100.00”,但是我只需要100.00(不带引号)即可。如何归档? 问题答案:

  • 我有一个字符串: 我想从中提取,即从右边的最后一个或第一个之后的子字符串。 有人能提供一些帮助吗?

  • 问题内容: 我想尝试从Go中的JSON获取键值,但是我不确定该怎么做。 我已经能够使用simplejson来读取json值,但是我却无法找出如何获取键值。 谁能指出正确的方向和/或帮助我? 谢谢! 问题答案: 您可以通过执行以下操作来获取JSON结构的顶级密钥: 请注意,键的顺序不得与JSON结构中的键顺序相对应。它们在最后一片中的顺序甚至会在完全相同的代码的不同运行之间有所不同。这是由于地图迭代

  • 问题内容: 我是Android的初学者。在我的项目中,我从HTTP响应中获取了以下json。 我想从上面的json获取“ NeededString”。如何获得? 问题答案: 这可能对您有帮助。 Java: 科特林: getJSONObject(index)。在上面的示例中,0表示索引。

  • 我有两根绳子 在两种情况下,我应该删除