如何在不知道键值的情况下读取 JSON 数据

本文关键字:情况下 读取 JSON 数据 键值 不知道 | 更新日期: 2023-09-27 17:56:26

我有一个作为输入字符串的json数据。现在,我需要使用输入的 Json 数据更新现有的 Json 数据。就我而言,我想遍历每个键并与现有 Json 数据匹配,然后使用输入的 Json 数据更新该键的值。

用于检索现有数据的代码

var existingJSon = ProductRepository.ListOfProd.Cast<JArray>().Where(x => x["ProdId"].ToString() == id.ToString());

检索数据后,我现有的 Json 将如下所示。

{
    ProdId:"1",
    Title:"C#",
    Author:"Jeffy",
    Publisher:"XYZ",
    Category:"Microsoft"
    }

现在,我需要遍历作为输入并与现有 Json 键匹配的每个键,并更新该键的值。

输入并在更新后应如下所示:

{
ProdId:"1",
Title:"C#",
Author:"Jeffy",
Publisher:"abcd",
Category:"Microsfot Basic .Net Development Kit"
}

如何在不知道键值的情况下读取 JSON 数据

看看这是否对您有帮助, 我们可以使用Newtonsoft来反序列化未知类型并循环键和值。

string json = "{ProdId:'"1'",Title:'"C#'",Author:'"Jeffy'",Publisher:'"XYZ'",Category:'"Microsoft'"}";
        JObject obj = JsonConvert.DeserializeObject < JObject>(json);
        var properties = obj.Properties();
        foreach (var prop in properties)
        {
            string key = prop.Name;
            object value = prop.Value;
        }