一.JSON 概述:
JavaScript Object Natation,是一种轻量级的数据交换技术规范。
二.使用流程:
在服务端将java对象转换为JSON,然后发送到浏览器,在浏览器上在讲JSON对象转换
为js对象。
三.JSON语法
.表示一个对象:
{属性名1:属性值1,属性名2:属性值2,属性名3:属性值3}
JavaScript中创建对象的三种方式:
.使用json语法来创建
var obj = {"name":an,"age":};
.使用Object来创建
var obj = new Object();
obj.name="zs"; obj.age=;
.使用javaScript函数来创建(对象模板);
function Person(name,age){
this.name = name;
this.age = age;
}
var person1 = new Person("zs",)
.表示一个对象组成的数组:
var arr = [{"name","chang","age",},{"name":"bo","age":}];
四.JSON的使用:
.java对象转换为JSON格式的字符串(就是普通字符串使用了JSON的语法规则),
使用了JSONObject.fromObject();
public static void test1(){
//普通java对象
Stock s = new Stock();
s.setName("an");
s.setCode("");
s.setPrice(12.8);
//转换为JSON对象
JSONObject obj = JSONObject(s);
//转换为字符串
String jsonStr = obj.toString();
System.out.println(jsonStr);
}
.java对象组成的集合转换为一个JSON字符串,
使用了JSONArray.fromObject();
public static void test2(){
//生成一个java对象的集合
List<Stock> stock = new ArrayList<Stock>();
Random r = new Random();
DecimalFormat df = new DecimalFormat("#.##"); //小数格式
for(int i=;i<;i++){
Stock s = new Stock();
s.setName("zhang"+r.nextInt());
s.setCode(""+r.nextInt());
Double price = r.nextInt()+r.nextDouble();
s.setPrice(Double.parseDouble(df.format));
stock.add(s);
}
//将这个对象的集合转换成一个json的字符串
JSONArray array =JSONArray.fromObject(stock);
String jsonStr = array.toString();
System.out.println(jsonStr);
};
.java对象组成的数组装换为一个JSON字符串
public static void test3(){
//生成一个java对象的数组
Stock[] stock = new Stock[];
Random r = new Random();
DecimalFormat df = new DecimalFormat("#.##");
for(int i=;i<;i++){
Stock s = new Stock();
s.setName("cheng"+r.nextInt());
s.setCode(""+r.nextInt());
Double d = r.nextInt()+r.nextDouble();
s.setPrice(Double.parseDouble(df.format(d)));
stock[i] = s;
}
//讲这个java对象的数组转换为一个JSON字符串
JSONArray array = JSONArray.fromObject(stock);
String jsonstr = array.toString();
System.out.println(jsonstr);
}
.JSON字符串转换为javaScript对象
JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成
JavaScript 对象。
必须把文本包围在括号中,这样才能避免语法错误:
var obj = eval ("(" + jsontxt + ")"); JQuery框架中ajax解析json字符串的示例。
$.ajax({
type: 'POST',
url: '../../caseHandler.ashx?action=GetCase&id=' + id.toString(), //url action是方法的名称
data: "",
dataType: "text", //可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可以设置为json
ContentType: "application/json; charset=utf-8",
success: function (returnedData) {
getMarkerFeature(eval("(" + returnedData+ ")"));
},
error: function (msg) {
alert("访问失败:"+ msg);
}
});
五.同步请求:
在ajax发送请求的时候设置。
xhr.open(请求方式,请求地址,false);
使用同步是客户端需要等待服务端的响应之后才能处理下一步操作;当服务器处理的
比较慢的时候,浏览器会锁定当前页面,造成“假死”现象。

json语法和使用的更多相关文章

  1. JSON语法五大要素图文介绍

    原文:http://www.jb51.net/article/32398.htm JSON语法是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成,下面就进行学习研究,希望本文能教会 ...

  2. 《JAVASCRIPT高级程序设计》JSON语法/解析/序列化

    JSON是一种数据格式,不是一种编程语言. 一.语法 JSON语法可以表示以下三种类型的值:简单值.对象.数组. 1.简单值 最简单的JSON数据值就是简单值: 5 "hello world ...

  3. JSON语法

    JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...

  4. JSON语法与JavaScript语法的区别

    JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现. 描述 ...

  5. JSON语法、对象、遍历数组的区别和基本操作

    JSON 语法规则 JSON 语法是 javascript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是: ...

  6. JSON语法规则

    JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是 ...

  7. JSON 语法

    ylbtech-JSON: JSON 语法 JSON 语法是 JavaScript 语法的子集. 1. JSON 语法规则返回顶部 JSON 语法是 JavaScript 对象表示语法的子集. 1. ...

  8. JSON语法2

    把 JSON 文本转换为 JavaScript 对象 JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 Jav ...

  9. 使用JSON语法创建JS对象(重要)

    JS对象的键值可以加单引号或者不加或者加双引号 JSON语法提供了一种更简单的方式来创建对象,可以避免书写函数,也可避免用new关键字,可以直接创建一个JS对象,使用一个花括号,然后将每个属性写成&q ...

  10. JSON语法及JSON定义规范化

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://www.cnblogs.com/zhuhui-site/p/10090541.html 一.前言   JSON(JavaScrip ...

随机推荐

  1. mysql中如何不重复插入满足某些条件的重复的记录的问题

    最近在项目中遇到了这样的一个问题“: 在mysql数据库中需要每次插入的时候不能插入三个字段都相同的记录.在这里使用到了 insert into if not exists  和insert igno ...

  2. mysql 纸 mysql_fetch_array OR mysql_fetch_assoc OR mysql_fetch_row

    <?php $con = mysql_connect("localhost", "root", "123456");if (!$con ...

  3. Inception安装

    前言: MySQL语句需要审核,这一点每个DBA及开发人员都懂,但介于语句及环境的复杂性,大部分人都是望而却步,对其都是采取妥协的态度,从而每个公司都有自己的方法. 大多数公司基本都是半自动化(脚本+ ...

  4. 360 安全卫士 for Linux 使用结果

    测试了一把,结果显示360基本对Linux社区规范和安全常识不give a fuck. 胡乱打包 首先,这个deb包就是胡乱打包,依赖关系就没弄好: $ dpkg-deb -I 360safeforl ...

  5. 如何实现字符串的翻转,不用php库函数翻转字符串

  6. css总结19:HTML5 Canvas(画布)

    1  <canvas> 标签定义图形,比如图表和其他图像. 例1:简单使用: <canvas id="Canva" width="200" h ...

  7. memset函数使用

    函数原型 void *memset(void *s,int c,size_t n): 功能 将已开辟内存空间 s 的首 n 个字节的值设为值 c. 头文件  #include<memory.h& ...

  8. http服务 WCF、Web API、Web service、WCF REST之间的区别

      http服务 WCF.Web API.Web service.WCF REST之间的区别 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web ...

  9. javascript framework js常用框架

    js常用框架 一.node.js   二.angularjs.js   三.react.js   四.webpack.js   五.flux.js   六.vue.js   七.bootstrap   ...

  10. 【连载】redis库存操作,分布式锁的四种实现方式[一]--基于zookeeper实现分布式锁

    一.背景 在电商系统中,库存的概念一定是有的,例如配一些商品的库存,做商品秒杀活动等,而由于库存操作频繁且要求原子性操作,所以绝大多数电商系统都用Redis来实现库存的加减,最近公司项目做架构升级,以 ...