繁体   English   中英

自定义从Web API接收的JSON

[英]Customizing the JSON received from Web API

我需要在Json字符串中再添加一个节点。

以下是我从中读取数据的代码。

var url = "https://xyz_12232_abc/0908978978979.json";
var sys = new WebClient();
var content = sys.DownloadString(url);

我从上面的代码收到以下输出:

{
 "2312312312313":
                {
                "emailId":"abc@gmail.com",
                "model":"XYZ001",
                "phone":"+654784512547",
                "userName":"User1"
                },
"23456464512313":
                {
                "emailId":"abcd@gmail.com",
                "model":"XYZ002",
                "phone":"+98745114474",
                "userName":"User2"
                },
"45114512312313":
                {
                "emailId":"abcde@gmail.com",
                "model":"XYZ3",
                "phone":"+214784558741",
                "userName":"User3"
                }
}

但是,我想要这样的输出:

{
 "Records": [
                {
                "UID":"2312312312313":,
                "emailId":"abc@gmail.com",
                "model":"XYZ001",
                "phone":"+654784512547",
                "userName":"User1"
                },

                {
                 "UID":"23456464512313":,
                "emailId":"abcd@gmail.com",
                "model":"XYZ002",
                "phone":"+98745114474",
                "userName":"User2"
                },

                {
                "UID":"45114512312313":,
                "emailId":"abcde@gmail.com",
                "model":"XYZ3",
                "phone":"+214784558741",
                "userName":"User3"
                } 
           ] 
}

现在,如何实现呢?

您可以使用Json.NET将数据按摩到所需的输出中:

var jsonStr = @"..."; // your JSON here
var obj = JsonConvert.DeserializeObject<Dictionary<string, JObject>>(jsonStr);

var formattedObj = new
{
    Records = obj.Select(x =>
    {
        x.Value.AddFirst(new JProperty("UID", x.Key));
        return x.Value;
    })
};

// serialize back to JSON
var formattedJson = JsonConvert.SerializeObject(formattedObj);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM