Javascript jquery中json传递的eval数据
我尝试在jquery中传递json数据 更新 使用序列化对象Javascript jquery中json传递的eval数据,javascript,jquery,json,Javascript,Jquery,Json,我尝试在jquery中传递json数据 更新 使用序列化对象 [WebMethod] public static string select() { SMSEntities d = new SMSEntities(); List<string> name = new List<string>(); //string data1 = "[";
[WebMethod]
public static string select()
{
SMSEntities d = new SMSEntities();
List<string> name = new List<string>();
//string data1 = "[";
var mdata = new SMSEntities().selectdata()
.Select(s => new { s.name }).ToArray().Distinct();
//foreach (var c in mdata)
//{
// data1 += "'" + c.name + "',";
// name.Add(c.name);
// // res += c.month;
//}
//data1 = data1.Substring(0, data1.Length - 1);
//data1 += "]";
var score = new SMSEntities().selectdata().Select(s => new { s.name, s.Salary });
// data2 = "[";
//foreach (var b in score)
//{
// data2 += "{name:'" + b.name + "',data:[" + b.Salary + "]},";
//}
//data2 = data2.Substring(0, data2.Length - 1);
//data2 += "]";
var json1 = new JavaScriptSerializer().Serialize(mdata);
var json2 = new JavaScriptSerializer().Serialize(score);
var result = new { data = json1, data2 = json2 };
return Newtonsoft.Json.JsonConvert.SerializeObject(result);
}
然后像这样得分
[{"name":"abc_name","Salary":"34000"},{"name":"xyz_name","Salary":"23000"},{"name":"def_name","Salary":"1000"},{"name":"ght_name","Salary":"45000"},{"name":"lmn_name","Salary":"34000"},{"name":"hh_name","Salary":"33000"}]
和不带eval的jquery
<script type="text/javascript">
$(function () {
$.ajax({
type: "POST",
url: "WebForm1.aspx/select",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (result) {
var data1 = result.d.split('*')[0];
//console.log(JSON.stringify(data1));
console.log(data1);
alert(data1);
var data2 = result.d.split("*")[1];
//console.log(JSON.stringify(data2));
console.log(data2);
alert(data2);
var od = JSON.stringify(result);
debugger;
alert("1");
var obj = JSON.parse(od);
debugger;
alert(od);
// alert(obj);
Highcharts.chart('container', {
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories:data1,
//categories: [
// 'Jan',
// 'Feb',
// 'Mar',
// 'Apr',
// 'May',
// 'Jun',
// 'Jul',
// 'Aug',
// 'Sep',
// 'Oct',
// 'Nov',
// 'Dec'
//],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
//series: [{
// name: 'Tokyo',
// data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
//}, {
// name: 'New York',
// data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
//}, {
// name: 'London',
// data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
//}, {
// name: 'Berlin',
// data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
//}]
//series: [{
// data: eval(data2)
//}]
series: data2,
});
},
error: function (error) {
alert(error);
}
});
});
</script>
$(函数(){
$.ajax({
类型:“POST”,
url:“WebForm1.aspx/select”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
async:true,
成功:功能(结果){
var data1=result.d.split('*')[0];
//log(JSON.stringify(data1));
console.log(data1);
警报(数据1);
var data2=结果d.split(“*”[1];
//log(JSON.stringify(data2));
console.log(data2);
警报(数据2);
var od=JSON.stringify(结果);
调试器;
警报(“1”);
var obj=JSON.parse(od);
调试器;
警报(od);
//警报(obj);
Highcharts.chart('容器'{
图表:{
类型:“列”
},
标题:{
文字:“月平均降雨量”
},
副标题:{
文本:'来源:WorldClimate.com'
},
xAxis:{
类别:数据1,
//类别:[
//“一月”,
//二月,,
//“三月”,
//“四月”,
//“五月”,
//"六月",,
//七月,,
//"八月",,
//"九月",,
//“十月”,
//十一月,,
//“十二月”
//],
十字准星:对
},
亚克斯:{
分:0,,
标题:{
文字:“降雨量(毫米)”
}
},
工具提示:{
headerFormat:“{point.key}”,
pointFormat:“{series.name}:”+
“{point.y:.1f}mm”,
页脚格式:“”,
分享:是的,
useHTML:true
},
打印选项:{
专栏:{
点填充:0.2,
边框宽度:0
}
},
//系列:[{
//名称:"东京",,
//数据:[49.9,71.5,106.4129.2,144.0176.0,135.6148.51216.4194.1,95.6,54.4]
//}, {
//名称:'纽约',
//数据:[83.6,78.8,98.5,93.4,106.0,84.5,105.0,104.3,91.2,83.5,106.6,92.3]
//}, {
//名称:“伦敦”,
//数据:[48.9,38.8,39.3,41.4,47.0,48.3,59.0,59.6,52.4,65.2,59.3,51.2]
//}, {
//名称:“柏林”,
//数据:[42.4,33.2,34.5,39.7,52.6,75.5,57.4,60.4,47.6,39.1,46.8,51.1]
//}]
//系列:[{
//数据:评估(数据2)
//}]
系列:数据2,
});
},
错误:函数(错误){
警报(错误);
}
});
});
现在,当我在highchart not display中使用序列化对象数据时。。根据有效的json,返回的序列也是正确的。。如果您想在jquery中传递数据,那么当我选中F12时也没有错误,所以您的javascript代码应该如下所示-
$(function () {
$.ajax({
type: "GET", // This Should be GET instead of POST
url: "WebForm1.aspx/select",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (result) {
var data1 = result.data1;
var data2 = result.data2;
.......
});
}
});
[WebMethod]
public static string select() {
SMSEntities d = new SMSEntities();
List < string > name = new List < string > ();
string data1 = "[";
var mdata = new SMSEntities().selectdata()
.Select(s => new {
s.name
}).ToArray().Distinct();
foreach(var c in mdata) {
data1 += '{"name" : "' + c.name + '"},';
name.Add(c.name);
}
data1 = data1.Substring(0, data1.Length - 1);
data1 += "]";
var score = new SMSEntities().selectdata().Select(s => new {
s.name, s.Salary
});
string data2 = "[";
foreach(var b in score) {
data2 += '{"name": "' + b.name + '" , "data" :[' + b.Salary + ']},';
}
data2 = data2.Substring(0, data2.Length - 1);
data2 += "]";
return '{"data1": '+ data1 + ',"data2":' + data2 + '}';
}
你的代码应该是这样的-
$(function () {
$.ajax({
type: "GET", // This Should be GET instead of POST
url: "WebForm1.aspx/select",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (result) {
var data1 = result.data1;
var data2 = result.data2;
.......
});
}
});
[WebMethod]
public static string select() {
SMSEntities d = new SMSEntities();
List < string > name = new List < string > ();
string data1 = "[";
var mdata = new SMSEntities().selectdata()
.Select(s => new {
s.name
}).ToArray().Distinct();
foreach(var c in mdata) {
data1 += '{"name" : "' + c.name + '"},';
name.Add(c.name);
}
data1 = data1.Substring(0, data1.Length - 1);
data1 += "]";
var score = new SMSEntities().selectdata().Select(s => new {
s.name, s.Salary
});
string data2 = "[";
foreach(var b in score) {
data2 += '{"name": "' + b.name + '" , "data" :[' + b.Salary + ']},';
}
data2 = data2.Substring(0, data2.Length - 1);
data2 += "]";
return '{"data1": '+ data1 + ',"data2":' + data2 + '}';
}
[WebMethod]
公共静态字符串select(){
SMsenties d=新的SMsenties();
Listname=新列表();
字符串data1=“[”;
var mdata=new smsenties().selectdata()
。选择(s=>new{
s、 名字
}).ToArray().Distinct();
foreach(mdata中的var c){
data1+='{“name”:“'+c.name+''“}';
名称。添加(c.名称);
}
data1=data1.Substring(0,data1.Length-1);
数据1+=“]”;
var score=new smsenties().selectdata().Select(s=>new{
s、 姓名,s.薪水
});
字符串数据2=“[”;
foreach(分数中的var b){
数据2+='{“名称”:“+b.name+”,“数据”:['+b.Salary+']}”;
}
data2=data2.Substring(0,data2.Length-1);
数据2+=“]”;
返回“{”data1:“+data1+”,“data2:“+data2+”}”;
}
在ajax成功函数中,结果将为您提供json数据。如果您想在jquery中传递数据,那么您的javascript代码应该如下所示-
$(function () {
$.ajax({
type: "GET", // This Should be GET instead of POST
url: "WebForm1.aspx/select",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (result) {
var data1 = result.data1;
var data2 = result.data2;
.......
});
}
});
[WebMethod]
public static string select() {
SMSEntities d = new SMSEntities();
List < string > name = new List < string > ();
string data1 = "[";
var mdata = new SMSEntities().selectdata()
.Select(s => new {
s.name
}).ToArray().Distinct();
foreach(var c in mdata) {
data1 += '{"name" : "' + c.name + '"},';
name.Add(c.name);
}
data1 = data1.Substring(0, data1.Length - 1);
data1 += "]";
var score = new SMSEntities().selectdata().Select(s => new {
s.name, s.Salary
});
string data2 = "[";
foreach(var b in score) {
data2 += '{"name": "' + b.name + '" , "data" :[' + b.Salary + ']},';
}
data2 = data2.Substring(0, data2.Length - 1);
data2 += "]";
return '{"data1": '+ data1 + ',"data2":' + data2 + '}';
}
你的代码应该是这样的-
$(function () {
$.ajax({
type: "GET", // This Should be GET instead of POST
url: "WebForm1.aspx/select",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (result) {
var data1 = result.data1;
var data2 = result.data2;
.......
});
}
});
[WebMethod]
public static string select() {
SMSEntities d = new SMSEntities();
List < string > name = new List < string > ();
string data1 = "[";
var mdata = new SMSEntities().selectdata()
.Select(s => new {
s.name
}).ToArray().Distinct();
foreach(var c in mdata) {
data1 += '{"name" : "' + c.name + '"},';
name.Add(c.name);
}
data1 = data1.Substring(0, data1.Length - 1);
data1 += "]";
var score = new SMSEntities().selectdata().Select(s => new {
s.name, s.Salary
});
string data2 = "[";
foreach(var b in score) {
data2 += '{"name": "' + b.name + '" , "data" :[' + b.Salary + ']},';
}
data2 = data2.Substring(0, data2.Length - 1);
data2 += "]";
return '{"data1": '+ data1 + ',"data2":' + data2 + '}';
}
[WebMethod]
公共静态字符串select(){
SMsenties d=新的SMsenties();
Listname=新列表();
字符串data1=“[”;
var mdata=new smsenties().selectdata()
。选择(s=>new{
s、 名字
}).ToArray().Distinct();
foreach(mdata中的var c){
data1+='{“name”:“'+c.name+''“}';
名称。添加(c.名称);
}
data1=data1.Substring(0,data1.Length-