c# - 如何从 JObject 中按键获取值?

标签 c# json

我有一个这样的 JObject:

{
  "@STARTDATE": "'2016-02-17 00:00:00.000'",
  "@ENDDATE": "'2016-02-18 23:59:00.000'"
}

我想从 JObject 中获取 @STARTDATE 和 @ENDDATE 值。


这是我尝试完成任务的示例代码:

JObject json = JObject.Parse("{\"@STARTDATE\": \"'2016-02-17 00:00:00.000'\",\"@ENDDATE\": \"'2016-02-18 23:59:00.000'\"}");
var key = "@STARTDATE";

var value = GetJArrayValue(json, key);

private string GetJArrayValue(JObject yourJArray, JToken key)
{
    string value = "";
    foreach (JToken item in yourJArray.Children())
    {
        var itemProperties = item.Children<JProperty>();
        //If the property name is equal to key, we get the value
        var myElement = itemProperties.FirstOrDefault(x => x.Name == key.ToString());
        value = myElement.Value.ToString(); //It run into an exception here because myElement is null
        break;
    }
    return value;
}

注意:以上代码无法从JObject中按键获取值。


您能帮我找到一种方法从 JObject 中按键获取值吗?

最佳答案

这应该会有所帮助 -

var json = "{'@STARTDATE': '2016-02-17 00:00:00.000',  '@ENDDATE': '2016-02-18 23:59:00.000' }";
var fdate = JObject.Parse(json)["@STARTDATE"];

关于c# - 如何从 JObject 中按键获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37479314/

相关文章:

c# - 找不到类型或命名空间名称 'Google'

c# - 嵌套的 Async/Await 似乎没有扩展

c# - 将新对象附加到数组后,JSON 文件显示额外的反斜杠

java - HashMap 的 JSON 表示

iphone - 在 iphone 中使用 Brautaset Json 框架时出错

c# - 在 ASP.NET 中使用 ItemTemplate 参数执行方法

java - 在运行时创建复合比较器以进行排序

javascript - 使用 javascript/lodash 从输入字符串中解析 html 内容

c# - 在 C# 中使用嵌套列表反序列化 JSON

c# - 如何将 float 组从 c# 编码到 c,然后在 c 中编辑数组,同时让 c# 能够立即引用更新后的数组