C# json中用于反序列化c的单个字符串#
我在JSON中有以下字符串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”类型定义无参
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表示建议。