Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将对象序列化为JSON_C#_Json_Highcharts - Fatal编程技术网

C# 将对象序列化为JSON

C# 将对象序列化为JSON,c#,json,highcharts,C#,Json,Highcharts,下面是我的对象代码 var obj_series = new { name = s_Name, data = p_Value }; 序列化后给出以下JSON格式 ["series":[{"name":"01. Target"}],"data":[14,18,12]}] 我将如何在对象内获取多个系列名称,以便输出如下所示 "series": {

下面是我的对象代码

var obj_series = new
            {
                name = s_Name,
                data = p_Value

            };
序列化后给出以下JSON格式

["series":[{"name":"01. Target"}],"data":[14,18,12]}]
我将如何在对象内获取多个系列名称,以便输出如下所示

       "series":
        {
            name: 'Target',
            data: [14,18,12]
        }, {
            name: 'Alarm',
            data: [14,18,12]
        }, {
            name: 'Actual',
            data: [14,18,12]
        }

     List<object> modified_listofstrings = new List<object>();
     System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer();
     List<string> s_Name = new List<string>();
     List<float> p_Value = new List<float>();
     modified_listofstrings.Add(obj_series);
     jSearializer.Serialize(modified_listofstrings);
“系列”:
{
名称:“目标”,
数据:[14,18,12]
}, {
名称:“警报”,
数据:[14,18,12]
}, {
名称:'实际',
数据:[14,18,12]
}
List modified_listofstring=new List();
System.Web.Script.Serialization.JavaScriptSerializer jSearializer=新的System.Web.Script.Serialization.JavaScriptSerializer();
列表s_Name=新列表();
列表p_值=新列表();
修改的字符串列表。添加(obj_系列);
序列化(修改的字符串);

如果我理解正确,那么使用
JavaScriptSerializer对自定义集合进行序列化就不需要特别考虑。尝试方法。

这是一种方法:

为对象创建类:

public class Serie
{
    public string Name { get; set; }
    public List<long> Data { get; set; }

    public Serie()
    {
        Data = new List<long>();
    }
}

public class SeriesCollection
{
    public List<Serie> Series { get; set; }
    public SeriesCollection()
    {
        Series = new List<Serie>();
    }
}
SeriesCollection collection = new SeriesCollection();

collection.Series.Add(new Serie() { Name = "Target", Data = { 1, 2, 3 } });
collection.Series.Add(new Serie() { Name = "Alarm", Data = { 1, 2, 3 } });
collection.Series.Add(new Serie() { Name = "Actual", Data = { 1, 2, 3 } });

System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string seriesStr = jSearializer.Serialize(collection);

Output:
{"Series":[{"Name":"Target","Data":[1,2,3]},
           {"Name":"Alarm","Data":[1,2,3]},
           {"Name":"Actual","Data":[1,2,3]}
          ]}
更新:

public class Serie
{
    public string Name { get; set; }
    public List<long> Data { get; set; }

    public Serie()
    {
        Data = new List<long>();
    }
}

public class SeriesCollection
{
    public List<Serie> Series { get; set; }
    public SeriesCollection()
    {
        Series = new List<Serie>();
    }
}
SeriesCollection collection = new SeriesCollection();

collection.Series.Add(new Serie() { Name = "Target", Data = { 1, 2, 3 } });
collection.Series.Add(new Serie() { Name = "Alarm", Data = { 1, 2, 3 } });
collection.Series.Add(new Serie() { Name = "Actual", Data = { 1, 2, 3 } });

System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string seriesStr = jSearializer.Serialize(collection);

Output:
{"Series":[{"Name":"Target","Data":[1,2,3]},
           {"Name":"Alarm","Data":[1,2,3]},
           {"Name":"Actual","Data":[1,2,3]}
          ]}
我不知道它是否适合您的需要,但这里有另一种方法:

var seriesdasda = new { series = new List<object>() };
seriesdasda.series.Add(new { name = "Target", data = { 1, 2, 3 }});
seriesdasda.series.Add(new { name = "Alarm", data = { 1, 2, 3 }});
seriesdasda.series.Add(new { name = "Actual", data = { 1, 2, 3 }});

string seriesStr2 = jSearializer.Serialize(seriesdasda);
var seriesdasda=new{series=new List()};
seriesdasda.series.Add(新的{name=“Target”,data={1,2,3});
seriesdasda.series.Add(新的{name=“Alarm”,数据={1,2,3});
seriesdasda.series.Add(new{name=“Actual”,data={1,2,3});
字符串seriesStr2=jSearializer.Serialize(seriesdasda);

实际上,我正在从另一个web服务获取数据,我对其进行了xml解析,以获得所需格式的数据,我再次序列化了该格式以获得JSON格式,是否没有解决方案可以如上所示在对象中传递值,因为我使用了4个不同的对象并将其序列化在一起…var obj4=new{legend=new[]{obj_legend},图表,系列,xAxis};修改的_listofstrings.Add(obj4)…在这个系列中,我想取多个值..并且我在同一个对象中传递这个系列,这个对象是obj4,因为我想这个系列是chart,obj_legend和xAxis的兄弟,我不想把它作为另一个对象,否则它会给我在highcharts中绘制图表带来问题。不..实际上我的s_名称和p_值是c每个包含三个值,当我像你说的那样写的时候,我每次都会得到三个值,我想要的是来自s_Name的值应该单独得到,这样我就可以得到它的数据,我不能添加固定的无s_Name和p_value,我确实从代码本身得到计数。你可以在列表中循环,在每次迭代中创建一个新对象并将其添加到序列列表中。您拥有的两个列表之间的关系是什么?名称列表上的第一个索引与数据列表上的第一个索引相关?您能否遵循此链接,并告诉我如何在我在var中使用的列表中进行循环[