解析json数组数据

时间:2017-10-11 19:32:48

标签: c# json

我有以下代码,在按钮单击时,我对c#controller进行ajax调用。我还需要将一些值传递给控制器​​。

var array = JSON.stringify(myArrayList);

     $.ajax({
            type: "POST",                
            dataType: 'json',
            data: {
                'type': vm.myType,
                 'mod': vm.myMod,
                 'ar' : array 
            },
            url: rootDir + "/Home/GetData",                              
            success: function (data) {
                console.log(data);                   
            },
            error: function (xhr, status, error) {
                console.log("Error");
            }                
        });

在我的c#控制器中我有:

 [HttpPost]
    public IActionResult GetData(string type, string mod, string ar)
    {
       //I can get type and mod but having issues in getting my array data
    }

My Array数据如下:

[{"id":"1","name":"John"},{"id":"2","name":"Steve"}]

在我的循环中,我想抓住并命名值。我试过

JArray v = JArray.Parse(ar);

但是不能循环并获得值

更新

我认为我的json数组存在问题,因为我无法在c#controller中获取json数组的值。

当我在java脚本中调试我的数组时,它的值如下:

Array(2)
0 Object
  id: "1"
  name: "John"
1 Object
  id: "2"
  name: "Steve"

我使用Json.stringify后如下:

var array = JSON.stringify(myArrayList);

现在在我的C#控制器中,我得到了结果字符串:

[{"id":"1","name":"John"},{"id":"2","name":"Steve"}]

我认为这是不对的,因为当我使用下面的代码时:      dynamic stuff = JObject.Parse(ar);

它抛出错误:

  'Error reading JObject from JsonReader. Current JsonReader item is not an object: 

2 个答案:

答案 0 :(得分:3)

您需要强制转换为正确的类型进行枚举:

</mainClass>

输出

</manifest>

但我真的建议同步你的前端和后端数据模型

<manifestEntries>

输出

<Class-Path>

答案 1 :(得分:0)

由于JArray是Newtonsoft,你可以使用这样的东西进行反序列化,然后遍历结果:

var m_json = JsonConvert.DeserializeObject(ar);

foreach (var item in m_json)
{
  Console.Write(item.name);
}