如何在没有双引号的情况下获取 JSON 元素的值
how to get the value of json element without the double quote
我通过这个函数从数据表生成json:
public string DataTableToJSONWithStringBuilder3(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)
{
if (j == 1)
{
JSONString.Append("'"[" + table.Rows[i][j].ToString() + "]'",");
}
else
{
JSONString.Append("'"[" + table.Rows[i][j].ToString() + "]'",");
}
}
else if (j == table.Columns.Count - 1)
{
if (j == 1)
{
JSONString.Append("'"[" + table.Rows[i][j].ToString() + "]'"");
}
else
{
JSONString.Append("'"[" + table.Rows[i][j].ToString() + "]'"");
}
}
}
if (i == table.Rows.Count - 1)
{
JSONString.Append("");
}
else
{
JSONString.Append(",");
}
}
JSONString.Append("]");
}
return JSONString.ToString();
}
然后我通过 ajax 调用方法检索返回值:
$.ajax({
type: "POST",
url: "/ProjMonitor/Report/ProjectMonitoringSummary.aspx/GetlineChart",
contentType: "application/json",
dataType: "json",
data: "{id:'"+idproyek+"'}",
// contentType: "application/json; charset=utf-8",
success: function (msg) {
var data = msg.d
}
});
从服务器收到的消息或响应:
{"d":"{ '"dataTarget'":['"[Date.UTC(2016,3,01),10.00]'",'"[Date.UTC(2016,1,01),5.00]'"], '"dataRealisasi'" :['"[Date.UTC(2016,3,01),10.00]'",'"[Date.UTC(2016,1,01),5.00]'"]}"}
我需要像这样没有双引号的变量值:
[{
"name": "Proyeksi Target",
"data" : [
[ Date.UTC(2016, 3, 01), 10.00 ],
[ Date.UTC(2016, 1, 01), 5.00 ]
]
}, {
"name": "Realisasi",
"data": [
[Date.UTC(2016, 3, 01), 10.00 ],
[Date.UTC(2016, 1, 01), 5.00 ]
]
}]
你们能帮我吗?
我尝试了 JSON。解析(msg.d) 但错误:未捕获的类型错误:JSON。解析不是一个函数
我真正需要的是将Highcharts JS元素的动态值放在下面,dataTarget和dataRealisasi可以通过jquery ajax调用带有参数的方法来更改。
$('#container3').highcharts({
chart: {
type: 'spline'
},
title: {
text: 'Monitoring Proyek'
},
subtitle: {
text: 'Proyek'
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { // don't display the dummy year
month: '%e. %b',
year: '%b'
},
title: {
text: 'Date'
}
},
yAxis: {
title: {
text: 'Target (%)'
},
min: 0
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.x:%e. %b}: {point.y:.2f} %'
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
series: [{
"name": "Proyeksi Target",
"data": [ dataTarget
]
}, {
name: 'Realisasi',
data: [
dataRealisasi
]
}]
});
dataTarget 和 dataRealisasi 的格式应该是这样的
[
[Date.UTC(1970, 9, 29), 0],
[Date.UTC(1970, 10, 9), 0.4],
[Date.UTC(1970, 11, 1), 0.25],
[Date.UTC(1971, 0, 1), 1.66],
[Date.UTC(1971, 0, 10), 1.8],
[Date.UTC(1971, 1, 19), 1.76],
[Date.UTC(1971, 2, 25), 2.62],
[Date.UTC(1971, 3, 19), 2.41],
[Date.UTC(1971, 3, 30), 2.05],
[Date.UTC(1971, 4, 14), 1.7],
[Date.UTC(1971, 4, 24), 1.1],
[Date.UTC(1971, 5, 10), 0]
]
没有引号.. 请帮忙
您可以使用
JSON.parse()
来解析 JSON 字符串。
var array = JSON.parse(object.d);
您没有有效的 JSON,因为
- 前导零
- 括号
- 函数/方法调用
我不建议使用另一种解决方案
,在这种情况下array = eval(object.d);
更好的方法是以不使用eval()
的方式组织数据。
使用此字符串的唯一方法是使用 ReGex 删除 JSON 对象或数组范围之外的内容。
var str = '{' +
'"d": "[{' +
'"name": "Proyeksi Target",' +
'"data" : [' +
'[ Date.UTC(2016, 3, 01), 10.00 ],' +
'[ Date.UTC(2016, 1, 01), 5.00 ]' +
']' +
'}, {' +
'"name": "Realisasi",' +
'"data": [' +
'[Date.UTC(2016, 3, 01), 10.00 ],' +
'[Date.UTC(2016, 1, 01), 5.00]' +
']' +
'}]"' +
'}';
// fix syntax errors
str = str.match(/("'['{".*}]")/g)[0];
str = str.substr(1, str.length - 2).replace(/(Date.UTC[^)]+'))/g, '"$1"');
// convert to object
var jsonObj = JSON.parse(str);
var myStr = JSON.stringify(jsonObj, null, 2);
document.write(myStr);
相关文章:
- 如何在不需要单击按钮的情况下获取选项的值
- 如何在没有回调的情况下获取有关元素的信息
- 在不使用sort()的情况下获取HTML LI元素的副本
- Javascript如何在不使用画布的情况下获取鼠标位置
- Javascript在没有jQuery的情况下获取X父节点
- Rails/JS-在不刷新页面的情况下获取变量
- jQuery在不刷新页面的情况下获取每个A标记的值
- 在没有jquery的情况下获取iframe中的特定内容
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 角度 - 在不使用 ng-repeat的情况下获取数据长度
- AngularJS:在不修改ng模型的情况下获取选择标签
- 我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 如何在没有元素的情况下获取文件引用对象
- 如何在没有jQuery的情况下获取事件目标
- JavaScript:在没有画布的情况下获取 ImageData
- 在没有解析 JSON 的情况下获取高图表数据
- 如何在没有图像的情况下获取链接