json中的单个字符串反序列化c#

时间:2016-09-01 06:46:45

标签: c# json deserialization json-deserialization

我在JSON中有以下字符串

string IDS = "{\"IDS\":\"23,24,25,28\"}"

现在我需要将其转换为c#string

我试过这个

string id = new JavaScriptSerializer().Deserialize<string>(IDS);

我想在字符串中找回这个逗号分隔的字符串,但它会抛出错误

  

没有为'System.String

的类型定义无参数构造函数

任何帮助该做什么?

由于

3 个答案:

答案 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"]