JSON.如何从这个嵌套的JSON结构中获取值

本文关键字:JSON 结构 获取 嵌套 | 更新日期: 2023-09-27 18:17:26

我有这个JSON:

{
    "client_id": "26075235",
    "client_version": "1.0.0",
    "event": "app.uninstall",
    "timestamp": 1478741247,
    "data": {
        "user_id": "62581379",
        "site_id": "837771289247593785",
        "platform_app_id": "26075235"
    }
}

我将其解析为JSON。我可以成功地访问第一级的值,例如:(string)RequestBody.SelectToken("client_id")

如何使用JPath表达式访问"user_id"的值(或通过访问JSON的子对象)。净JObject) ?这行不通:

(string)RequestBody.SelectToken("data[0].user_id")

,我不能这样做来解析JSON的'data'部分:

JObject RequestBodyData = JObject.Parse((string)RequestBody.SelectToken("data"));

因为编译器似乎将RequestBody.SelectToken("data")识别为对象(我得到错误'不能将对象解析为字符串')

并且我不想将原始JSON解析为自定义c#对象,因为我正在开发一种解决方案,需要能够将JSON通用地解析为jobobject(或任何其他类型的用于处理JSON的通用对象),因此可以以相对一致的方式解析。

JSON.如何从这个嵌套的JSON结构中获取值

SelectToken("data[0].user_id")不起作用,因为在JSON中没有数组。你应该用SelectToken("data.user_id")代替。

小提琴:https://dotnetfiddle.net/K0X4ht