如何将 json 属性添加到 Json.net 数组

Posted

技术标签:

【中文标题】如何将 json 属性添加到 Json.net 数组【英文标题】:How to add json property to a Json.net Array 【发布时间】:2017-10-31 14:09:53 【问题描述】:

我想在C#中给List添加一个属性,然后我想创建一个JObject来设置值并求和一些值之后,然后我需要将我的List <Object>转换为JArray,然后我想将我的 jsonObject 添加到 JArray,然后以 Json 形式返回我的 JArray 以在屏幕上显示,或者通过 JsonArray 在 javascript 表上显示每个结果,但最后我唯一得到的是这个错误:

"未捕获的 TypeError: 无法使用 'in' 运算符搜索 'length' 在 ["client":"id":1001,"debtJanuary":500000"....

double total = 0;
JArray jsonarray = null;   
JObject  jsonobject = null;
List<ClientAccount> list = null;

try

    list = ClientBussinesLayer.getListClientCash(id);

    for(ClientAccount item in list)
    
        total += item.debtJanuary + item.debtFebruary + item.debtMarch;
    

    jsonobject = new JObject();
    jsonobject.Add("totalDebt", total);
    jsonobject.Add("statusList", "success");


    jsonarray = JArray.FromObject(list); 
    jsonarray.Add(jsonObject); 

catch(Exception ex)

    error


return  JsonConvert.SerializeObject(jsonarray);


fnSuccessList: function (data) 

    var strhtml = '';
    var list = jQuery.parseJSON(data);  //also i tried with data.d but dont work

    $.each(list, function (index, item) 
        strHtml += '<tr>';
        strHtml += '  <td>' + item.debtJanuary + '</td>';
        strHtml += '  <td>' + item.debtFebruary + '</td>';
        strHtml += '  <td>' + item.debtMarch + '</td>';
        strHtml += '</tr>'
    );


    $("#table").append(strHtml);

【问题讨论】:

【参考方案1】:

你应该使用 foreach 循环来代替:

foreach(var item in list)
    
         total += item.debtJanuary+item.debtFebruary + item.debtMarch;
    

【讨论】:

以上是关于如何将 json 属性添加到 Json.net 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Dictionary<string,string> 添加到现有 JSON.Net 的 JObject?

如何将json.net添加到Xamarin Forms,本地项目或PCL上?

将 Json.Net 添加到 Unity3D 项目

将服务引用添加到引用了 JSON.NET 库的项目时出现奇怪的问题

如何让 Json.NET 为具有复杂值的属性设置 IsSpecified 属性?

Json.NET如何避免循环引用