读取js文件里的json数据
从js里读出来的是字符串 所以保存到js里面的应该也是JSON字符串 而不是JSON对象. 字符串是要用 ''(单引号)保存起来的.
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }'; || '[{ "name": "cxh", "sex": "man" },{ "name": "cwh", "sex": "man" }]'
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
JSON字符串 转成 JSON对象
eg1: var objJSON = eval('('+strJSON+')'); (js自带)
eg2: var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
eg3: var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
读取: 单个objJSON.属性名 数组 objJSON[0].属性名
JSON对象转成字符串
eg1: var last=obj.toJSONString(); //将JSON对象转化为JSON字符
eg2: var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
除eval函数为js自带之外 另外的是在JSON.js里,在新版js里前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。
使用parseJSON 方法 有可能会抛异常
从ashx读json数据 一般是把数据从数据库里读到datatable里或dataset里.然后再转到list<dictionary<t,t>>里 .再用 scriptseraizble的序列方法 序列化成JSON字符串 就可以返回了..
其实也可以直接 序列化datatable 但是由于序列化datatable还需要在webconfig文件里配置些东西 觉得麻烦 所以就转成dictionary或是list再去序列化
引用的命名空间
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Web.Script.Serialization;
using System.Text;
使用这个类JavaScriptSerializer里的Serialize方法 将对象实例化成JSON字符串