Json可以理解成一种数据规范。你按json格式来组装数据,在任意地方都可以按照json格式再来解析之前组装好后传递过来的数据。我个人理解,json就是两种东西,数组“[]”和对象"{}"。数组“[]”中存放任意元素,可以是数字、字符串、json对象等等。json对象里面就是存放的值对(每个值对即为一个key对应一个value,这个value可以是一个字符串、json数组、json对象等),比如:
{‘userId’ : '10001', ‘userName’ : '张三'}
这个json对象是把用户对象抽象出来了,key :userId 、userName 分别代表用户对象的两个属性用户id和用户姓名;value: '10001'、'张三'则分别表示改用户对象的userId和userName属性的值,而Json数组“[]”可以存放N个这样的json对象,比如:
[
{‘userId’ : '10001', ‘userName’ : '张三'},
{‘userId’ : '10002', ‘userName’ : '李四'},
{‘userId’ : '10003', ‘userName’ : '王五'},
]
上面这个Json数组就可以理解成3个用户对象的集合,这样的话我们在任何需要的地方都可以把这个Json数组按照Json格式解析成我们需要的用户数据。
json说白了就是个字符串呗。
原来用servlet怎么接受字符串参数,就怎么接受json。
只不过这个json串一定要解析才能拿到想要的数据。
处理完后再生成一个json串用writer也好,跳转页面也好,总之把json输出就算返回了。
处理json你可以不必自己写代码,从网上找个json的工具包就可以,推荐jackson
C#读写txt文件的两种方法:
1添加命名空间
SystemIO;
SystemText;
2文件的读取
(1)使用FileStream类进行文件的读取,并将它转换成char数组,然后输出。
byte[] byData = new byte[100];
char[] charData = new char[1000];
public void Read()
{
try
{
FileStream file = new FileStream("E:\\testtxt", FileModeOpen);
fileSeek(0, SeekOriginBegin);
fileRead(byData, 0, 100); //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符
Decoder d = EncodingDefaultGetDecoder();
dGetChars(byData, 0, byDataLength, charData, 0);
ConsoleWriteLine(charData);
fileClose();
}
catch (IOException e)
{
ConsoleWriteLine(eToString());
}
}
(2)使用StreamReader读取文件,然后一行一行的输出。
public void Read(string path)
{
StreamReader sr = new StreamReader(path,EncodingDefault);
String line;
while ((line = srReadLine()) != null)
{
ConsoleWriteLine(lineToString());
}
}
3文件的写入
(1)使用FileStream类创建文件,然后将数据写入到文件里。
public void Write()
{
FileStream fs = new FileStream("E:\\aktxt", FileModeCreate);
//获得字节数组
byte[] data = SystemTextEncodingDefaultGetBytes("Hello World!");
//开始写入
fsWrite(data, 0, dataLength);
//清空缓冲区、关闭流
fsFlush();
fsClose();
}
(2)使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。
public void Write(string path)
{
FileStream fs = new FileStream(path, FileModeCreate);
StreamWriter sw = new StreamWriter(fs);
//开始写入
swWrite("Hello World!!!!");
//清空缓冲区
swFlush();
//关闭流
swClose();
fsClose();
}
将json对象返回页面。页面解析
如页面拿到var test = {name:"123",script:"alert('123')"}的json对象。
然后解析出脚本testscript;
调用js的eval()方法执行。--------eval(testscript);
1>jQuery插件支持的转换方式:
复制代码代码如下:
$parseJSON( jsonstr ); //jQueryparseJSON(jsonstr),可以将json字符串转换成json对象
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
复制代码代码如下:
JSONparse(jsonstr); //可以将json字符串转换成json对象
JSONstringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入jsonjs。
3>Javascript支持的转换方式:
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
4>JSON官方的转换方式:
http://wwwjsonorg/提供了一个jsonjs,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://githubcom/douglascrockford/JSON-js上获取到这个js,一般现在用json2js。
<script src="js的地址"></script>
或者
<script>js代码</script>
html的head或者body里写上以上代码
json并不是一段可以运行的js代码而是用javascript书写的一种数据内容的格式, 也就是仅仅是保存了一些数据而已, 拿到这段数据之后想做什么还得写出特定的js来读取/显示等等
然后如果你是拿到一个其它网站上的json地址想把里头的东西输出在自己的页面上的话, 还要考虑一个"跨域"的问题, 即浏览器出于安全并不允许一个页面用常规方式(ajax)请求另外一个域名不同的地址, 可以搜一下"Jquery跨域获得Json"
欢迎分享,转载请注明来源:表白网
评论列表(0条)