尝试用c#将JSON字符串转换为对象。使用一个非常简单的测试用例:
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
object routes_list = json_serializer.DeserializeObject("{ \"test\":\"some data\" }");
问题是routes_list从未被设置;它是一个未定义的对象。什么好主意吗?
尝试用c#将JSON字符串转换为对象。使用一个非常简单的测试用例:
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
object routes_list = json_serializer.DeserializeObject("{ \"test\":\"some data\" }");
问题是routes_list从未被设置;它是一个未定义的对象。什么好主意吗?
当前回答
Newtonsoft比java脚本序列化器. ...更快这个依赖于Newtonsoft的NuGet包,这个包很流行,比默认的序列化器更好。
一行代码解决方案。
var myclass = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(Jsonstring);
Myclass oMyclass = Newtonsoft.Json.JsonConvert.DeserializeObject<Myclass>(Jsonstring);
其他回答
或者,你可以使用Newtownsoft。Json库如下:
using Newtonsoft.Json;
...
var result = JsonConvert.DeserializeObject<T>(json);
T是匹配JSON字符串的对象类型。
在c#中将JSON字符串转换为对象。使用下面的测试用例..这对我很管用。这里“MenuInfo”是我的c#类对象。
JsonTextReader reader = null;
try
{
WebClient webClient = new WebClient();
JObject result = JObject.Parse(webClient.DownloadString("YOUR URL"));
reader = new JsonTextReader(new System.IO.StringReader(result.ToString()));
reader.SupportMultipleContent = true;
}
catch(Exception)
{}
JsonSerializer serializer = new JsonSerializer();
MenuInfo menuInfo = serializer.Deserialize<MenuInfo>(reader);
Newtonsoft比java脚本序列化器. ...更快这个依赖于Newtonsoft的NuGet包,这个包很流行,比默认的序列化器更好。
一行代码解决方案。
var myclass = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(Jsonstring);
Myclass oMyclass = Newtonsoft.Json.JsonConvert.DeserializeObject<Myclass>(Jsonstring);
复制你的Json和粘贴在json2csharp的文本框,然后点击生成按钮。
使用下面的cs文件将生成一个cs类
var generatedcsResponce = JsonConvert.DeserializeObject(yourJson);
其中RootObject是生成的cs文件的名称;
添加这个ddl来引用您的项目:System.Web.Extensions.dll
使用System.Web.Script.Serialization;
public class IdName
{
public int Id { get; set; }
public string Name { get; set; }
}
string jsonStringSingle = "{'Id': 1, 'Name':'Thulasi Ram.S'}".Replace("'", "\"");
var entity = new JavaScriptSerializer().Deserialize<IdName>(jsonStringSingle);
string jsonStringCollection = "[{'Id': 2, 'Name':'Thulasi Ram.S'},{'Id': 2, 'Name':'Raja Ram.S'},{'Id': 3, 'Name':'Ram.S'}]".Replace("'", "\"");
var collection = new JavaScriptSerializer().Deserialize<IEnumerable<IdName>>(jsonStringCollection);