C# 以JSON格式返回列表

C# 以JSON格式返回列表,c#,json,list,C#,Json,List,下面是我的代码 List<string> modified_listofstrings = new List<string>(); string sJSON = ""; System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer(); resulted

下面是我的代码

List<string> modified_listofstrings = new List<string>();
string sJSON = "";
System.Web.Script.Serialization.JavaScriptSerializer jSearializer =
                 new System.Web.Script.Serialization.JavaScriptSerializer();
resulted_value = final_resulted_series_name + ":" + period_name + ":" + period_final_value;
modified_listofstrings.Add(resulted_value);
json_resultedvalue = JsonConvert.SerializeObject(resulted_value);
modified_listofstrings.Add(json_resultedvalue);
sJSON = jSearializer.Serialize(modified_listofstrings);
return sJSON;
我收到一个错误,因为无法将类型字符串隐式转换为system.collection.generic.list

resulted_value = final_resulted_series_name + ":" + period_name + ":" + period_final_value;
这不是有效的JSON。它必须具有以逗号分隔的键、值格式。我想应该是:

resulted_value = "{series_name : \"" + final_resulted_series_name + "\",period_name: \"" + period_name + "\",period_final_value: \"" + period_final_value + "\"}";
所以结果应该是这样的:

{系列名称:“无论系列名称是什么”,句点名称: “无论时段名称是什么”,时段最终值: “无论最后的值是什么”}


让我来修正一下您的方法—不要使用数据构建JSON字符串,然后将它们放入列表并再次尝试序列化,您应该做的是构建数据结构,然后一次性序列化它

由于我无法理解您文章中的数据结构,下面是一个不同格式的示例:

public struct Person
{
    public string Name;
    public int Age;
    public List<string> FavoriteBands;
}
现在假设您有一个这些对象的列表,即
list people=GetTheListFromSomewhere(),然后使用

string json = JsonConvert.SerializeObject(person);
string json = Newtonsoft.Json.JsonConvert.SerializeObject(people);

去试试吧

上面的
jSearializer
是什么?jseralizer.Serialize()期望作为参数是什么?@Reshma轻轻推一下:上面的问题是问题的重要上下文;没有这一点,很难评论。特别是,
JsonConvert.serialized对象
看起来像
Newtonsoft.Json.JsonConvert
(Json.net),但是
Serialize
API(在错误行上)与
Newtonsoft.Json.JsonSerializer
提供的任何内容都不匹配。那么:这是什么?很抱歉,问题不完整,我已经更新了上面的问题,但我的问题已经解决了,但我想我的JSON in Result_值没有给出有效的JSON格式,我对它的格式有问题。@Reshma序列化程序的全部要点是它担心格式。。。但它需要一个对象,而不是字符串。你能举一个“这是输入”、“这是预期输出”的例子吗?因为OP在合成字符串上运行
JsonConvert.SerializeObject
,我的解释是它不是JSON——这是不透明的负载。当然,JSON序列化裸字符串意味着什么是任何人的猜测。。。(看起来JSON.NET只是原封不动地传递了它)这是可行的,但我想除了值之外,我无法正确地放置双引号,它显示了双引号和反斜杠。我正在尝试,但如果你得到我的解决方案的答案,我将非常感谢你,这一点。哦,太多了。
string json = Newtonsoft.Json.JsonConvert.SerializeObject(people);