在C#中形成动态JSON数组

时间:2017-06-07 10:03:03

标签: c# arrays json

对于Web服务,我需要根据存储过程提供的数据创建动态JSON数组作为响应发送。

{{1}}

但收到的回复是数据:[[{" key":" name"," value":" 123"}, {" date":" 01-Jun-2017"}],[{" key":" name"," value& #34;:" abc"}]]

而所需的回答是:[{" name":" abc"," date":" 01-Jun-2017" },{" name":" 123"}]

任何人都可以告诉我这是什么问题吗?

先谢谢。

3 个答案:

答案 0 :(得分:0)

也许这个图书馆可以帮助你,它可以节省你的时间

http://www.newtonsoft.com/json

答案 1 :(得分:0)

您应该创建一个类似于JSON结构的C#类。

public class SomeClassName
{
    public string name { get; set; }
    public string date { get; set; }
}

然后代替字典,使用上面类的List如下:

List<SomeClassName> t = new List<SomeClassName>();
for (int i = 0; i < reader.FieldCount; i++)
{
    t.Add(new SomeClassName() { name = reader.GetName(i), date = reader.GetValue(i).ToString() });
}
_response.data.Add(t);

答案 2 :(得分:0)

您可以在C#中使用匿名类型。

new { key = value, ...};

e.g。

List<object> lst = new List<object>();
lst.Add(new { Name = "Andrey", Age = 31 });
lst.Add(new { Name = "Martha" });

// print [{"Name":"Andrey","Age":31},{"Name":"Martha"}]
Console.WriteLine(JsonConvert.SerializeObject(lst));