Akh*_*ngh 3 javascript c# asp.net json
我想将我的数据更改为所需的JSON格式.我的数据如下:
[
"{
id:001,
name:akhilesh,
}",
"{
id:002,
name:Ram,
}"
]
Run Code Online (Sandbox Code Playgroud)
我想将上述数据转换为有效的JSON:
[
{
"id":"001",
"name":"akhilesh"
},
{
"id":"002",
"name":"Ram"
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但这些都没有帮助:
JSON.serializeJSON.parseeval我需要帮助.
服务器端的确切数据响应是:
{
"d": [
"{id:413,title:ranjan,start:413,end:413}",
"{id:414,title:raja,start:414,end:414}",
"{id:415,title:raja g,start:415,end:415}",
"{id:416,title:abhh,start:416,end:416}",
"{id:417,title:chta,start:417,end:417}",
"{id:418,title:Raju,start:418,end:418}",
"{id:419,title:Ranjan,start:419,end:419}",
"{id:420,title:Raja,start:420,end:420}",
"{id:421,title:chitti,start:421,end:421}",
"{id:422,title:Raja,start:422,end:422}",
"{id:423,title:raja,start:423,end:423}",
"{id:424,title:yash,start:424,end:424}",
"{id:425,title:vsg,start:425,end:425}",
"{id:431,title:Vimal11,start:431,end:431}",
"{id:432,title:Aruhi,start:432,end:432}",
"{id:434,title:Aruhi,start:434,end:434}",
"{id:435,title:,start:435,end:435}",
"{id:436,title:xs,start:436,end:436}",
"{id:437,title:rajkj,start:437,end:437}",
"{id:438,title:mmt,start:438,end:438}",
"{id:439,title:xaxa,start:439,end:439}",
"{id:440,title:yash,start:440,end:440}"
]
}
Run Code Online (Sandbox Code Playgroud)
服务器端代码
[System.Web.Services.WebMethod]
public static List<string> getData()
{
List<string> data = new List<string>();
using (SqlConnection con = new SqlConnection("Data Source=ACME-PC\\SQL;Integrated Security=true;Initial Catalog=ClinicApplication"))
{
SqlCommand cmd = new SqlCommand("select DISTINCT Patient_ID,First_Name,fromtime,totime,Date from tbl_AddPatientInfo", con);
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string id = "{" +
"\"id:\"" + dr["Patient_ID"].ToString() + "," +
"title:" + dr["First_Name"].ToString() + "," +
"start:" + dr["Patient_ID"].ToString() + "," +
"end:" + dr["Patient_ID"].ToString() +
"}";
string ids = id.Replace(@"""", "");
data.Add(ids);
}
return data;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tus*_*har 14
如果你已经控制了如何从服务器发送响应,我建议json_encode(response);使用PHP,或者JSON.stringify(response)如果使用Javascript(node.js)或其他语言的类似方法.然后在客户端,您可以JSON.parse(response)直接使用响应来获取JSON对象.
数组元素需要用引号括起来,以便可以使用它转换为JSON JSON.parse.然后map可以与JSON.parse一起使用.
var arr = [
'{"id":"001","name":"akhilesh"}',
'{"id":"002","name":"Ram"}'
];
arr = arr.map(JSON.parse);
console.log(arr);
document.getElementById('result').innerHTML = JSON.stringify(arr, 0, 4);Run Code Online (Sandbox Code Playgroud)
<pre id="result"></pre>Run Code Online (Sandbox Code Playgroud)
如果字符串中没有引号,则可以使用正则表达式添加它们并使其适合传递给它JSON.parse.
var arr = [
"{id:001,name:akhilesh}",
"{id:002,name:Ram}"
];
arr = arr.map(function(e) {
// Add quotes on every alphanumeric character
return JSON.parse(e.replace(/(\w+)/g, '"$1"'));
});
console.log(arr);
document.getElementById('result').innerHTML = JSON.stringify(arr, 0, 4);Run Code Online (Sandbox Code Playgroud)
<pre id="result"></pre>Run Code Online (Sandbox Code Playgroud)
而不是通过使用复杂regex(在某些条件下可能不起作用)javascript.更好地进行服务器端更改以JSON正确获取数据.
避免通过字符串连接构建JSON,因为当字符串包含JSON中的某些特殊字符时,您可能会发送损坏的数据.这应该使用JSON序列化程序完成.
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string getData(){
List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
Dictionary<string, string> item;
using (SqlConnection con = new SqlConnection("Data Source=ACME-PC\\SQL;Integrated Security=true;Initial Catalog=ClinicApplication"))
{
SqlCommand cmd = new SqlCommand("select DISTINCT Patient_ID,First_Name,fromtime,totime,Date from tbl_AddPatientInfo", con);
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
item = new Dictionary<string, string>();
item.Add("id", dr["Patient_ID"]+"");
item.Add("title", dr["First_Name"]+"");
item.Add("start", dr["Patient_ID"]+"");
item.Add("end", dr["Patient_ID"]+"");
data.Add(item);
}
return new JavaScriptSerializer().Serialize(data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
修改现有代码:
[System.Web.Services.WebMethod]
public static List<string> getData(){
List<string> data = new List<string>();
using (SqlConnection con = new SqlConnection("Data Source=ACME-PC\\SQL;Integrated Security=true;Initial Catalog=ClinicApplication"))
{
SqlCommand cmd = new SqlCommand("select DISTINCT Patient_ID,First_Name,fromtime,totime,Date from tbl_AddPatientInfo", con);
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string id = "{" +
"\"id\":" + "\""+dr["Patient_ID"].ToString()+"\"" + "," +
"\"title\":" + "\""+dr["First_Name"].ToString()"\"" + "," +
"\"start\":" + "\""+dr["Patient_ID"].ToString()"\"" + "," +
"\"end\":" + "\""+dr["Patient_ID"].ToString() + "\""+
"}";
data.Add(id);
}
return data;
}
}
}
Run Code Online (Sandbox Code Playgroud)