【问题标题】:Extract Values from JObject从 JObject 中提取值
【发布时间】:2014-08-25 20:34:40
【问题描述】:

我正在尝试从 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,我用JSONLint 进行了检查。顺便说一句,你不应该只是说某事不起作用。描述它是如何不起作用的,提供示例输出或告诉我们您遇到了什么异常等。

标签: c# json json.net


【解决方案1】:

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

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

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

或者:

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

【讨论】:

  • 如何处理 null 案例?如果您调用.Value&lt;string&gt;() 但值不是字符串怎么办?会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
相关资源
最近更新 更多