c# - 从 JObject 中提取值

标签 c# json json.net

我正在尝试从 Json 中提取一些值,但是 [ ] 之间的数据有问题

{ 
  attrib1: ""es-BO"",
  attrib2: 2,
  Segment: [
  {
    inAttrib1: ""value1"",
    inAttrib2: ""value2"",
    inAttrib3: ""value3""
  }]
}

对于我使用的第一个值:

string attrib1 = request.GetValue("attrib1").Value<string>();
.
.
.

但是当我尝试做的时候:

string inAttrib1 = request.GetValue("inAttrib1").Value<string>();

不起作用...我能做什么?,或者存在另一种方法来做同样的事情

最佳答案

[] 之间(包括在内)的数据称为数组。在继续之前,查看 JSON's home page 可能会有所帮助,特别是在可用的不同数据类型上。

您需要向下导航到Segment 数组,然后获取第一个元素,然后是该元素的inAttrib1 属性:

string attrib1Value = request["Segment"][0]["inAttrib1"].Value<string>();

或者:

string attrib1Value = request.SelectToken(@"Segment[0].inAttrib1").Value<string>()

关于c# - 从 JObject 中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493951/

相关文章:

c# - 为什么 Equals() 和 == 被设计成不同的?

c# - 我怎样才能将这个工厂类型的方法和数据库调用重构为可测试的?

c# - 为什么在具有两个进程和输出重定向的代码中没有捕获到 ThreadAbortException?

JSON.Net 和 Linq

c# - 如何最好地将类型为 Type 的 JArray 转换为类型数组?

c# - 如何使用 linq 在一个条件下检查列表中的多个值?

javascript - 如何从 MySQL 查询返回 json 到 GraphQL?

.net - 用 Newtonsoft Json.Net json 序列化器替换 WCF 内置的 JavascriptSerializer

c# - Newtonsoft.Json 用于反序列化的自定义根名称

javascript - 迭代 JSON 以仅更新单个元素