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);