在C#中将字符串数组转换为JSON对象

21

我面临以下情况:我有一个字符串数组,需要将这些数据作为JSON对象传递。如何使用DataContractJsonSerializer将字符串数组转换为JSON对象。

代码如下:

string[] request = new String[2];
string[1] = "Name";
string[2] = "Occupaonti";

1
如果您可以使用第三方库,建议您查看Json.Net - IronSlug
2个回答

42

我建议使用Newtonsoft.Json NuGet包,因为它可以轻松处理JSON。你可以这样做:

var request = new String[2];
request[0] = "Name";
request[1] = "Occupaonti";

var json = JsonConvert.SerializeObject(request);

这将产生:

["Name","Occupaonti"]

请注意,在您的帖子中,您最初试图索引字符串类型,并且由于索引是从零开始的,因此将收到IndexOutOfBounds异常。我假设您需要为名称和占用率分配值,因此我会略微更改这个:

var name = "Pooja Kuntal";
var occupancy = "Software Engineer";

var person = new 
{   
    Name = name, 
    Occupancy = occupancy
};

var json = JsonConvert.SerializeObject(person);

这将产生:

{
    "Name": "Pooja Kuntal",
    "Occupancy": "Software Engineer"
}

6
这里有一个简单的类可以完成任务。我使用了Newtonsoft.Json而不是DataContractJsonSerializer。
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] request = new String[2];
            request[0] = "Name";
            request[1] = "Occupaonti";
            string json = JsonConvert.SerializeObject(request);
        }
    }
}

嗨Tom,這樣的輸出會是 {"姓名","職業"} ...? - Pooja Kuntal
不。正如Alex Neves在他自己的回答中指出的那样(他的回答比我的更完整),这个输出是["Name","Occupaonti"],在JSON中它是一个项目数组。 - Tom Solacroup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接