通过循环更改 JSON 格式的数据.结果是三倍
change json formated data by looping... the result is tripled
我需要更改JSON格式化的数据,我想删除dataLevel JSON数组上第二列y中的引号。首先在代码后面,我使用此代码制作函数将数据表更改为 json 格式
public string DataTableToJSONWithStringBuilder(DataTable table) {
var JSONString = new StringBuilder();
if (table.Rows.Count > 0) {
JSONString.Append("[");
for (int i = 0; i < table.Rows.Count; i++) {
JSONString.Append("{");
for (int j = 0; j < table.Columns.Count; j++) {
if (j < table.Columns.Count - 1) {
JSONString.Append("'"" + table.Columns[j].ColumnName.ToString() + "'":" + "'"" + table.Rows[i][j].ToString() + "'",");
} else if (j == table.Columns.Count - 1) {
JSONString.Append("'"" + table.Columns[j].ColumnName.ToString() + "'":" + "'"" + table.Rows[i][j].ToString() + "'"");
}
}
if (i == table.Rows.Count - 1) {
JSONString.Append("}");
} else {
JSONString.Append("},");
}
}
JSONString.Append("]");
}
return JSONString.ToString();
}
我通过jquery ajax获取数据,结果如下:
{"d":"{ "dataLevel":[{"name":"KEBIJAKAN/PERATURAN","y":"1"},
{"name":"LAINNYA","y":"3"},{"name":"UTAMA","y":"3"}],
"dataStatus" :[{"Level":"KEBIJAKAN/PERATURAN","Status":"BELUM DIMULAI","Level1":"KEBIJAKAN/PERATURAN","y":"1","Proyek":"PJM16.02.UTAMA PKE SOP Penjaminan"},{"Level":"LAINNYA","Status":"BELUM DIMULAI","Level1":"LAINNYA","y":"3","Proyek":"SKL16.02 Menyusun blueprint kegiatan sosial kemasyarakatan (CSR) LPS |SKL16.03.UTAMA Seminar/sosialisasi/FGD dengan lembaga tertentu (termasuk seminar HUT LPS, seminar/sosialisasi/FGD dengan melibatkan anggota FKSSK) |SKL16.04 Peningkatan hubungan kelembagaan, khususnya LPS-BI-OJK"},{"Level":"UTAMA","Status":"BELUM DIMULAI","Level1":"UTAMA","y":"1","Proyek":"SKL16.01.UTAMA Sosialisasi program penjaminan kepada masyarakat"},{"Level":"UTAMA","Status":"ACTIVE","Level1":"UTAMA","y":"2","Proyek":"GAI16.01.UTAMA Menyusun Pedoman Audit Kinerja |PSO16.01.UTAMA Penyusunan kajian organisasi LPS (cary over 2015)"}]}"}
然后在ASPX页面中,我做了这个JavaScript函数:
function getData(dataPie, tahun) {
var dataz = jQuery.parseJSON(dataPie.d);
var DataArray = dataz['dataLevel'];
// var data = JSON.stringify(DataArray);
var countcolumn = countInObject(DataArray);
console.log(DataArray);
var JSONString = "";
for (var i = 0; i < DataArray.length; i++) {
JSONString += "[";
for (var j = 0; j < countcolumn; j++) {
JSONString += "{";
if (j < countcolumn - 1) {
JSONString += "name : '" + DataArray[j].name + "' , ";
JSONString += "y :" + DataArray[j].y + " ";
JSONString += "}, ";
} else if (j == countcolumn - 1) {
JSONString += "name : '" + DataArray[j].name + "', ";
JSONString += "y : " + DataArray[j].y + "} ";
}
}
if (i == DataArray.length - 1) {
JSONString += " ";
} else {
JSONString += "}, ";
}
JSONString += "]";
};
return JSONString;
}
这是我得到的结果是三倍...:
[{name : 'KEBIJAKAN/PERATURAN' , y :1 }, {name : 'LAINNYA' , y :3 }, {name : 'UTAMA', y : 3} }, ][{name : 'KEBIJAKAN/PERATURAN' , y :1 }, {name : 'LAINNYA' , y :3 }, {name : 'UTAMA', y : 3} }, ][{name : 'KEBIJAKAN/PERATURAN' , y :1 }, {name : 'LAINNYA' , y :3 }, {name : 'UTAMA', y : 3} ]
我想要的结果是:
[{name : 'KEBIJAKAN/PERATURAN' , y :1 }, {name : 'LAINNYA' , y :3 }, {name : 'UTAMA', y : 3} ]
任何人都可以帮助我如何解决这个问题?
要将字符串转换为数字,只需遍历数据并将该值从字符串更改为数字
var dataz = jQuery.parseJSON(dataPie.d);
dataz['dataLevel'].forEach(function(item){
item.y = +item.y || 0;
});
相关文章:
- webpack代码拆分了handlerbs文件——结果是文件很大
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- 为什么_self结果是不同的价值观
- 为什么结果是全局名称,这是由“这个”引起的
- 斐波那契数列的结果是无穷大,然后是 NaN
- 如何处理'00'JSON中的结果是JS或Coldfusion
- ReactJS-这个状态中的数组在删除时被正确更新,但结果是't,直到以后的状态发生变化
- 为什么这个JavaScript代码的结果是“;未定义”;
- 基准测试js的结果是什么意思
- 将函数从 obj 传递到数组中.然后添加数组,但结果是 NaN.为什么
- jQuery 替换字符串,如果它是双倍空格或单个空格
- 角度拖放:拼接不是三个级别的功能
- 在Javascript中获得下一个12个月的结果是混乱的
- 结果是检查多个复选框值并更新表数据
- 为什么Javascript给出的结果是数字而不是真/假的表达式
- 使用 Lodash 合并数组,为什么结果是重复的数组值?,我的代码在哪里出错
- 不同的结果是减去这两个值
- 通过循环更改 JSON 格式的数据.结果是三倍
- 三.js不是三的实例.对象3D
- jquery tmpl 总和结果为什么是四倍