以JSON格式返回列表

时间:2013-11-12 09:22:33

标签: 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_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;

但是接下来,

sJSON = jSearializer.Serialize(modified_listofstrings);

我收到错误,因为无法将类型字符串隐式转换为system.collection.generic.list

2 个答案:

答案 0 :(得分:2)

让我修复你的方法 - 而不是使用你的数据构建JSON字符串,然后将它们放入列表并再次尝试序列化,你应该做的是构建你的数据结构,然后一次性序列化它。 / p>

由于我无法弄清楚你帖子中数据的结构,这里有一个不同格式的例子:

public struct Person
{
    public string Name;
    public int Age;
    public List<string> FavoriteBands;
}

序列化它的最简单方法是使用Newtonsoft JSON。如果您有一个名为person的对象,那么您将使用

序列化它
string json = JsonConvert.SerializeObject(person);

现在假设您有一个这些对象的列表,即List<Person> people = GetTheListFromSomewhere();,那么您将使用

序列化它
string json = Newtonsoft.Json.JsonConvert.SerializeObject(people);

继续尝试吧!

答案 1 :(得分:0)

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 + "\"}";

所以结果应该是这样的:

  

{series_name:“whatever_series_name_is”,period_name:   “whatever_period_name_is”,period_final_value:   “whatever_period_final_value_is”}