Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# C json.net json字符串循环放入类中_C#_Asp.net_Asp.net Mvc_Json.net_Stringify - Fatal编程技术网

C# C json.net json字符串循环放入类中

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

嘿,我需要一些帮助来尝试找出如何通过返回的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 (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
}