gpt4 book ai didi

c# - 使用 DataContractJsonSerializer 生成轻量级 JSON

转载 作者:行者123 更新时间:2023-11-30 21:21:33 26 4
gpt4 key购买 nike

我正在尝试在 .Net 3.5 中使用 C# 和 DataContractJsonSerializer 生成 JSON。问题是我不知道如何为我需要的结果构建正确的结构。

我尝试使用哈希表、列表对象和数组列表来重现 PHP 的关联数组,但无法弄清楚如何使用 DataContractJsonSerializer 以最佳方式生成我的结果,而不必创建我自己的递归循环来构建 JSON。

最接近的方法是使用字典 > 方法,但结果太大,因为我无法“命名”键。

这是我得到的:

[
{
"Key":"status",
"Value":[
{
"Key":"value",
"Value":"ok"
}
]
},
{
"Key":"1",
"Value":[
{
"Key":"name",
"Value":"Result1"
},
{
"Key":"details",
"Value":"Result 1 details"
}
]
},
{
"Key":"2",
"Value":[
{
"Key":"name",
"Value":"Result2"
},
{
"Key":"details",
"Value":"Result 2 details"
}
]
},
{
"Key":"caller",
"Value":[
{
"Key":"value",
"Value":"1135345"
}
]
}
]

这就是我想要的:

{
"status":"ok",
"response":[
{
"id":1,
"name":"Result1"
"details":"Result 1 details"
},
{
"id":2,
"name":"Result2"
"details":"Result 2 details"
},
{
"id":3,
"name":"Result3"
"details":"Result 3 details"
],
"caller":"1135345"
}

有人知道如何使用 C# 生成这段 JSON 而不必加载整个 Json.NET 框架吗?我需要尽快生成它,因为这个项目旨在成为一个站点搜索引擎。

最佳答案

你应该看看使用 JavaScriptSerializer .它是 .NET 框架的一部分(分布在 System.Web.Extensions 中)。要获得您想要的结果,您可以这样做:

var results = new[]
{
new{id=1,name="Result 1"},
new{id=2,name="Result 2"},
new{id=3,name="Result 3"}
};

var js = new JavaScriptSerializer();
var result = js.Serialize(new
{
status = "ok",
response = results,
caller = 1135345
});

您可以使用匿名类,也可以使用任何现有的类。工作得很好:)此调用的返回值将是:

{"status":"ok","response":[{"id":1,"name":"Result 1"},{"id":2,"name":"Result 2"},{"id":3,"name":"Result 3"}],"caller":1135345}

关于c# - 使用 DataContractJsonSerializer 生成轻量级 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2653816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com