在 asp.net MVC 3 中解析 JSON 输出
Parse JSON output in asp.net MVC 3
我想在 C# asp.net mVC3 中解析 JSON 字符串,但不知道如何解析我的 json 字符串。
我的 JSON 字符串是这样的:
{"dept":"HR","data":[{"height":5.5,"weight":55.5},{"height":5.4,"weight":59.5},{"height":5.3,"weight":67.7},{"height":5.1,"weight":45.5}]}
代码:
var allData = { dept: deptname, data: arr};
var allDataJson = JSON.stringify(allData);
$.ajax({
url: '<%=Url.Action("funx","Controller")%>',
data: { DJson: allDataJson },
async: false,
cache: false,
type: 'POST',
success: function (data) {
alert("success data: "+data);
}
});
public String funx(string DJson)
{
System.Diagnostics.Debug.WriteLine("Returned Json String:" + DJson);
// var yourObject = new JavaScriptSerializer().Deserialize(DJson);
return "successfull";
}
我是 asp.net 的新手。我想解析字符串并将其保存在数据库中。
方法一:
使用您的 JSON 字符串的结构创建两个 类:
public class myobj
{
public string dept;
public IEnumerable<mydata>;
}
public class mydata
{
public int weight;
public int height;
}
然后使用它来解析它:
public static T FromJSON<T>(string str)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(str);
}
像这样:
myobj obj = MP3_SIOP_LT.Code.Helpers.JSONHelper.FromJSON<myobj>(@"{""dept"":""HR"",""data"":[{""height"":5.5,""weight"":55.5},{""height"":5.4,""weight"":59.5},{""height"":5.3,""weight"":67.7},{""height"":5.1,""weight"":45.5}]}");
结果:
方法二:
如果你不想 类 与你的 JSON 结构,使用与上面相同的方法,但是为了得到一个 dynamic
对象:
dynamic obj = MP3_SIOP_LT.Code.Helpers.JSONHelper.FromJSON<dynamic>(@"{""dept"":""HR"",""data"":[{""height"":5.5,""weight"":55.5},{""height"":5.4,""weight"":59.5},{""height"":5.3,""weight"":67.7},{""height"":5.1,""weight"":45.5}]}");
结果:
首先为您的 json
创建一个模型
public class Size
{
public double height { get; set; }
public double weight { get; set; }
}
public class MyData
{
public string dept { get; set; }
public List<Size> data { get; set; }
}
现在您可以反序列化 json。内置 DataContractJsonSerializer
var serializer = new DataContractJsonSerializer(typeof(MyData));
var data = (MyData)serializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json)));
或与Json.Net
var data = JsonConvert.DeserializeObject<MyData>(json);
您甚至可以在不创建任何 类
的情况下采用 dynamic
方式
dynamic dynObj = JsonConvert.DeserializeObject(json);
foreach(var item in dynObj.data)
{
Console.WriteLine("{0} {1}", item.height, item.weight);
}
您可以使用NewtonSoft Json.Net进行解析。
试试这个
var json = "{\"dept\":\"HR\",\"data\":[{\"height\":5.5,\"weight\":55.5},{\"height\":5.4,\"weight\":59.5},{\"height\":5.3,\"weight\":67.7},{\"height\":5.1,\"weight\":45.5}]}";
var foo = JsonConvert.DeserializeObject<RootObject>(json);
// Check Values
// var department = foo.dept;
// foreach (var item in foo.data)
// {
// var height = item.height;
// var weight = item.weight;
// }
public class Datum
{
public double height { get; set; }
public double weight { get; set; }
}
public class RootObject
{
public string dept { get; set; }
public List<Datum> data { get; set; }
}
Nuget:Json.Net
我想在 C# asp.net mVC3 中解析 JSON 字符串,但不知道如何解析我的 json 字符串。 我的 JSON 字符串是这样的:
{"dept":"HR","data":[{"height":5.5,"weight":55.5},{"height":5.4,"weight":59.5},{"height":5.3,"weight":67.7},{"height":5.1,"weight":45.5}]}
代码:
var allData = { dept: deptname, data: arr};
var allDataJson = JSON.stringify(allData);
$.ajax({
url: '<%=Url.Action("funx","Controller")%>',
data: { DJson: allDataJson },
async: false,
cache: false,
type: 'POST',
success: function (data) {
alert("success data: "+data);
}
});
public String funx(string DJson)
{
System.Diagnostics.Debug.WriteLine("Returned Json String:" + DJson);
// var yourObject = new JavaScriptSerializer().Deserialize(DJson);
return "successfull";
}
我是 asp.net 的新手。我想解析字符串并将其保存在数据库中。
方法一:
使用您的 JSON 字符串的结构创建两个 类:
public class myobj
{
public string dept;
public IEnumerable<mydata>;
}
public class mydata
{
public int weight;
public int height;
}
然后使用它来解析它:
public static T FromJSON<T>(string str)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(str);
}
像这样:
myobj obj = MP3_SIOP_LT.Code.Helpers.JSONHelper.FromJSON<myobj>(@"{""dept"":""HR"",""data"":[{""height"":5.5,""weight"":55.5},{""height"":5.4,""weight"":59.5},{""height"":5.3,""weight"":67.7},{""height"":5.1,""weight"":45.5}]}");
结果:
方法二:
如果你不想 类 与你的 JSON 结构,使用与上面相同的方法,但是为了得到一个 dynamic
对象:
dynamic obj = MP3_SIOP_LT.Code.Helpers.JSONHelper.FromJSON<dynamic>(@"{""dept"":""HR"",""data"":[{""height"":5.5,""weight"":55.5},{""height"":5.4,""weight"":59.5},{""height"":5.3,""weight"":67.7},{""height"":5.1,""weight"":45.5}]}");
结果:
首先为您的 json
创建一个模型public class Size
{
public double height { get; set; }
public double weight { get; set; }
}
public class MyData
{
public string dept { get; set; }
public List<Size> data { get; set; }
}
现在您可以反序列化 json。内置 DataContractJsonSerializer
var serializer = new DataContractJsonSerializer(typeof(MyData));
var data = (MyData)serializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json)));
或与Json.Net
var data = JsonConvert.DeserializeObject<MyData>(json);
您甚至可以在不创建任何 类
的情况下采用dynamic
方式
dynamic dynObj = JsonConvert.DeserializeObject(json);
foreach(var item in dynObj.data)
{
Console.WriteLine("{0} {1}", item.height, item.weight);
}
您可以使用NewtonSoft Json.Net进行解析。
试试这个
var json = "{\"dept\":\"HR\",\"data\":[{\"height\":5.5,\"weight\":55.5},{\"height\":5.4,\"weight\":59.5},{\"height\":5.3,\"weight\":67.7},{\"height\":5.1,\"weight\":45.5}]}";
var foo = JsonConvert.DeserializeObject<RootObject>(json);
// Check Values
// var department = foo.dept;
// foreach (var item in foo.data)
// {
// var height = item.height;
// var weight = item.weight;
// }
public class Datum
{
public double height { get; set; }
public double weight { get; set; }
}
public class RootObject
{
public string dept { get; set; }
public List<Datum> data { get; set; }
}
Nuget:Json.Net