mvc将JsonArray作为Json返回

时间:2012-11-26 10:18:46

标签: json asp.net-mvc-4 json.net

我正在尝试将动态json数组返回到mvc。

中的客户端

到目前为止我已经

            var a = 1;
            var b = 10;
            var jsonArray = new JArray();

            for (var i = 1; i < 5; i++)
            {
                var json = new JObject();
                json.Add("field" + a, b);

                jsonArray.Add(json);
                a++;
                b++;
            }

            return Json(jsonArray);

这将返回客户端

[[[[]]]]

我已经尝试将JsonArray首先转换为字符串并将其设置为没有格式化程序,但根据fiddler,它不会返回有效的json。

我希望结果像是:

[{field1:10},{field2:11},{field3:12}]

任何人都可以指出我做错了什么

1 个答案:

答案 0 :(得分:2)

这在Fiddler中得到了通过:

return Json(new { JsonArray = jsonArray.ToString() });

Fiddler似乎需要{ "FieldName": value }形式的JSON对象,因此我创建了一个匿名对象。您可以使用任何名称代替JsonArray

简单地返回Json(jsonArray)是行不通的,因为jsonArray将有一个与您想要的输出不同的基础表示,因此您在序列化它时会看到输出。