C# C json.net json字符串循环放入类中
嘿,我需要一些帮助来尝试找出如何通过返回的JSON.stringify字符串循环到asp.net mvc页面中的帖子 我的javascript:C# C json.net json字符串循环放入类中,c#,asp.net,asp.net-mvc,json.net,stringify,C#,Asp.net,Asp.net Mvc,Json.net,Stringify,嘿,我需要一些帮助来尝试找出如何通过返回的JSON.stringify字符串循环到asp.net mvc页面中的帖子 我的javascript: var result = JSON.stringify(data); $.ajax({ type: 'POST', url: 'saveUpdate', cache: false, dataType: 'json', data: { bomdata: result }, success: function (r
var result = JSON.stringify(data);
$.ajax({
type: 'POST',
url: 'saveUpdate',
cache: false,
dataType: 'json',
data: {
bomdata: result
},
success: function (response) {
console.log('has been updated');
},
error: function (response) {
console.log(response);
}
});
和我的ASP.net MVC控制器代码:
[HttpPost]
public string saveUpdate(string bomdata)
{
dynamic dynJson = JsonConvert.DeserializeObject(bomdata);
//Needing to add the loop here and place all data into my class
//and continue until its at the end of the loop
resultsBack.Add("dback", "GOOD");
resultsBack.Add("dhead", "Added BOM # " + bomdata.number);
resultsBack.Add("dinfo", "BOM was updated successfully");
resultsBack.Add("guid", bomdata.theGuid);
return JsonConvert.SerializeObject(resultsBack, Formatting.Indented);
}
以及正在发布的json字符串:
[{
"description": "1f43f",
"environment": 2,
"manufacturer": 3,
"vendor": 5,
"hardwarePartNumber": "v3rg",
"hardwareModelNumber": "35hg33",
"softwarePartNumber": "3f",
"softwareVersion": "2f",
"guid": ""
}, {
"description": "674h",
"environment": 5,
"manufacturer": 1,
"vendor": 33,
"hardwarePartNumber": "54eth",
"hardwareModelNumber": "5yh55",
"softwarePartNumber": "32hnj4",
"softwareVersion": "4.9",
"guid": ""
}]
我的班级:
public class bValues
{
public string description { get; set; }
public int environment { get; set; }
public int manufacturer { get; set; }
public int vendor { get; set; }
public string hardwarePartNumber { get; set; }
etc...etc....
}
我真正需要的是能够循环使用该json并将数据放入我的类中,将其保存到我的DB中,然后根据其中的数据量使用另一个循环再次执行该操作
从上面的例子来看,我有两组json值返回[{set1},{set2}]
我想把每一组放在我的课堂上:
Dictionary<string, string> _tmpParms = new Dictionary<string, string>();
StringBuilder buildTblVal = new StringBuilder();
StringBuilder buildTblName = new StringBuilder();
//Start loop....
HELPer.bomLineValues bomdata = JsonConvert.DeserializeObject<HELPer.bomLineValues>(bomdata);
//Now loop through that set and format it like
//blah1: something1, blah2: something2, blah3: something3, etc..
foreach (var prop in bomdata.GetType().GetProperties())
{
if (prop.PropertyType.Name == "Int32")
{
buildTblVal.Append(prop.Name + ": " + prop.GetValue(bomdata) + ",");
}
else
{
buildTblVal.Append(prop.Name + ": " + "'" + prop.GetValue(bomdata) + "',");
}
}
//Remove trailing comma
buildTblVal.Length = buildTblVal.Length - 1;
buildTblName.Length = buildTblName.Length - 1;
//Now save to the DB
_tmpParms.Add("1", buildTblName.ToString());
_tmpParms.Add("2", buildTblVal.ToString());
SQLHelper.callSQLSP("spUpdateBom", _tmpParms, "", false);
//Now loop back and get the next set of data to do the same with
任何帮助都会很好 您是否尝试反序列化到已创建的POCO类
bValues[] results = JsonConvert.DeserializeObject<bValues[]>(bomdata);
当您有一个表示数据的POCO类时,为什么要使用dynamic?我认为您可以这样做:var data=JsonConvert.DeserializeObjectbomdata@mmushtaq当我这样做时,我得到错误CS1056意外字符''很好的maccettura,但我希望最终将这些值添加到我的类中,只需保存数据并再次循环,然后再次执行相同的操作。您尝试将这些值添加到哪个类?更新了我的OP,希望它能从中获得更多。使用我的解决方案,您的数据已经在您的类中。结果将是一个bValues对象数组,每个json组有一个对象。正确,但既然它有多组值,我该如何循环使用它呢?
foreach (bValues item in results )
{
//do something with item.description
//do something with item.vendor
//etc
}