Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# json中用于反序列化c的单个字符串#_C#_Json_Deserialization_Json Deserialization - Fatal编程技术网

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

C# json中用于反序列化c的单个字符串#,c#,json,deserialization,json-deserialization,C#,Json,Deserialization,Json Deserialization,我在JSON中有以下字符串 string IDS = "{\"IDS\":\"23,24,25,28\"}" 现在我需要将其转换为c#字符串 我试过这个 string id = new JavaScriptSerializer().Deserialize<string>(IDS); string id=new JavaScriptSerializer()。反序列化(id); 我想在字符串中返回这个逗号分隔的字符串,但它会抛出错误 没有为“System.String”类型定义无参

我在JSON中有以下字符串

string IDS = "{\"IDS\":\"23,24,25,28\"}"
现在我需要将其转换为c#字符串

我试过这个

string id = new JavaScriptSerializer().Deserialize<string>(IDS);
string id=new JavaScriptSerializer()。反序列化(id);
我想在字符串中返回这个逗号分隔的字符串,但它会抛出错误

没有为“System.String”类型定义无参数构造函数

有什么需要帮忙的吗


谢谢,这是因为你的json字符串是一本字典。用这样的东西试试看

var result = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(IDS);
var mystring = result["IDS"];
var result=new JavaScriptSerializer()。反序列化(IDS);
var mystring=result[“IDS”];

这是因为您的json字符串是一个字典。用这样的东西试试看

var result = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(IDS);
var mystring = result["IDS"];
var result=new JavaScriptSerializer()。反序列化(IDS);
var mystring=result[“IDS”];

我更喜欢使用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; }
}
类程序
{
静态void Main(字符串[]参数)
{
字符串ID=“{\'IDS\':\'23,24,25,28\'”;
var obj=JsonConvert.DeserializeObject(IDS);
控制台写入线(对象ID);
Console.ReadLine();
}
}
类MyClass
{
公共字符串ID{get;set;}
}

我更喜欢使用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; }
}
类程序
{
静态void Main(字符串[]参数)
{
字符串ID=“{\'IDS\':\'23,24,25,28\'”;
var obj=JsonConvert.DeserializeObject(IDS);
控制台写入线(对象ID);
Console.ReadLine();
}
}
类MyClass
{
公共字符串ID{get;set;}
}

发生错误是因为您使用了不正确的类型字符串进行反序列化,它应该是Matthias Burger提到的字典。但是,您可以使用动态类型

string json = "{\"IDS\":\"23,24,25,28\"}";
var jobject = new JavaScriptSerializer().Deserialize<dynamic>(json );
string ids = jobject["IDS"]
string json=“{\'IDS\':\'23,24,25,28\'”;
var jobject=new JavaScriptSerializer()。反序列化(json);
字符串id=jobject[“id”]

发生错误是因为您使用了不正确的类型字符串进行反序列化,它应该是Matthias Burger提到的字典。但是,您可以使用动态类型

string json = "{\"IDS\":\"23,24,25,28\"}";
var jobject = new JavaScriptSerializer().Deserialize<dynamic>(json );
string ids = jobject["IDS"]
string json=“{\'IDS\':\'23,24,25,28\'”;
var jobject=new JavaScriptSerializer()。反序列化(json);
字符串id=jobject[“id”]

“它抛出错误”永远不够详细。还不清楚这些反斜杠是否实际在字符串中,或者这是否是字符串的源代码表示形式。如果您能提供一个字符串,它将非常有用。您想将字符串反序列化为字符串吗?不,你没有。我猜你在期待一个数组。在您共享的第二行代码中尝试“varid”而不是“stringid”error@Doruk,我也尝试了var-id,但同样的错误“it-throws-error”永远不够详细。还不清楚这些反斜杠是否实际在字符串中,或者这是否是字符串的源代码表示形式。如果您能提供一个字符串,它将非常有用。您想将字符串反序列化为字符串吗?不,你没有。我猜你在期待一个数组。在您共享的第二行代码中尝试“varid”而不是“stringid”error@Doruk,我也尝试了var id,但同样的错误我喜欢使用Newtonsofts JSON.net,+1表示建议。我喜欢使用Newtonsofts JSON.net,+1表示建议。