向json发出解析数组

本文关键字:数组 json | 更新日期: 2023-09-27 18:15:19

问题:我在写一个网络应用程序来管理联系人。在服务器端,我正在使用Razor语法(c#),我正在发送ajax请求到我的服务器与json编码字符串作为头。测试。CSHTML以如下方式接收:

var j = Json.Decode(Request["json"]);

现在我可以很好地使用所有的对象。但是!我有一个json编码字符串数组,如...,"persons":[1,2,3],... json。Decode解码这应该是一个数组,我可以用它来写数据到我的数据库。这样做之后,我想发送更新的对象回客户端(数组没有被改变或做任何其他)使用:

<text>
    @Html.Raw(Json.Encode(j));
    @j.persons.Length;
</text>

, persons元素的输出是...,"persons":{},...,但是persons的长度应该是3。我做错了什么?是否有参数告诉Json。编码编码子对象和数组以及?

感谢您的支持

PS: @j.persons。长度只是为了证明数组不是空的,并且存在

向json发出解析数组

我找到问题了。我必须使用循环强类型输入自动生成的数组(来自Json.Decode):

int[] temp = new int[j.persons.Length];
for(var i = 0;i < j.persons.Length;i++){
    temp[i] = (j.persons[i] is string)?Int32.Parse(j.persons[i]):(int)j.persons[i];
}
j.persons = temp;

谢谢你的建议

因为它只编码根而不编码人员试试j.as_json(:include => :persons)