我在JSON中有以下字符串
string IDS = "{\"IDS\":\"23,24,25,28\"}"
现在我需要将其转换为c#string
我试过这个
string id = new JavaScriptSerializer().Deserialize<string>(IDS);
我想在字符串中找回这个逗号分隔的字符串,但它会抛出错误
没有为'System.String
的类型定义无参数构造函数
任何帮助该做什么?
由于
答案 0 :(得分:6)
这是因为你的json字符串是一个字典。尝试使用类似的东西
var result = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(IDS);
var mystring = result["IDS"];
答案 1 :(得分:1)
我更喜欢使用JSON.net的解决方案:
class Program
{
static void Main(string[] args)
{
string IDS = "{\"IDS\":\"23,24,25,28\"}";
var obj = JsonConvert.DeserializeObject<MyClass>(IDS);
Console.WriteLine(obj.IDS);
Console.ReadLine();
}
}
class MyClass
{
public string IDS { get; set; }
}
答案 2 :(得分:1)
发生错误是因为您使用了错误的类型字符串来反序列化,它应该是Matthias Burger提到的Dictionary。但是,您可以使用动态类型
string json = "{\"IDS\":\"23,24,25,28\"}";
var jobject = new JavaScriptSerializer().Deserialize<dynamic>(json );
string ids = jobject["IDS"]