【问题标题】:Extract first set of records in JSON C#在 JSON C# 中提取第一组记录
【发布时间】:2017-03-15 05:39:21
【问题描述】:

我需要在 c# JSON 中获取第一组记录。这是我的 JSON 数据示例

string sJSON = "{
    { 
        "ID": "1", 
        "Name":"John", 
        "Area": "Java" , 
        "ID": "2",
        "Name": "Matt",
        "Area": "Oracle" , 
        "ID": "3","Name": 
        "Danny","Area": "Android"
    }
 }"

我只需要提取第一组记录(即{{"ID": "1", "Name":"John", "Area": "Java"}})。

如果只有一条记录,我的代码(见下文)可以正常工作,但当有多条记录时,它会采用最后一组 JSON 数据(即{{"ID": "3","Name": "Danny","Area": "Android"}})。

JObject jsonObject = JObject.Parse(sJSON);
string sID = (string)jsonObject["ID"];
string sName = (string)jsonObject["Name"];
string sArea = (string)jsonObject["Area"];

谁能帮我只提取第一组 JSON 数据?

【问题讨论】:

    标签: c# json xml


    【解决方案1】:

    您将 JSON 数据作为 JSON 数组返回,现在它是一个简单的 JSON 字符串。

    如果您能够像下面这样生成,那么您可以轻松轻松地获取单个 JSON 元素。

    [{ "ID": "1", "Name":"John", "Area": "Java" },{ "ID": "2","Name": "Matt","Area": "Oracle" },{ "ID": "3","Name": "Danny","Area": "Android" }  ]
    

    使用下面的链接,了解这种 JSON 格式。 http://json.parser.online.fr/

    【讨论】:

    • 我正在使用数组 [] 代码 - JArray a = JArray.Parse(sJSON);谢谢
    【解决方案2】:

    将数据解析为 JToken。 这样你就有了类似的东西:

    var jToken = JToken.Parse(sJSON);
    var isEnumerable = jToken.IsEnumerable()  
    
    if(isEnumeable)
    {
    cast as JArray and get firstOrdefault
    }                 
    
    var isObject = jToken.IsObject();
    if(isObject )
    {
    cast as JObject and perform straight casting
    }                 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 2019-11-15
      相关资源
      最近更新 更多