JavaScript基础教程-json格式与解析
吕益平 2018-05-11 来源 : 阅读 997 评论 0

摘要:在JavaScript基础教程中,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。接下来就让我们一起来学习下本次的JavaScript基础教程吧。


在JavaScript基础教程中,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999(信息标准化和通信系统(由netscpace公司Brendan Eich提出, 本标准在1999年11月被ECMA General Assembly接受采纳为ECMA-262第3版。))的一个子集。接下来就让我们一起来学习下本次的JavaScript基础教程吧。 

 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言.

JSON建构于两种结构:

{name:”小花”}对象  

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组      (associative array)。

值的有序列表(An      ordered list of values)。在大部分语言中,它被理解为数组(array)。

[“aa”,”bb”]

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 {name:‘aa’}


示例:

    var ob={name:”小花”,age:23,address:”nc”}

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 var arr=[“aa”,”bb”,”cc”]


值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。


var arr=[“小花”,”小白”];

var arr1=[];

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。


数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。


JS解析JSON

一、JSON2解析JSON

1.访问JSON对象中的成员我们可以如下使用:

test1.js



 

2.用eval()方法把JSON字符串转化成JSON对象.

把JSON字符串转化成JSON对象,可以使用eval()函数。

test2.js





4. 使用JSON2中的JSON对象的stringify ()方法把JSON对象转换成字符串





 

JAVA中使用JSON

 

一、使用json-lib-2.3把Java对象转换成JSON对象

       在java程序中通常会用到JSON格式作为格式化数据传输,json-lib-2.3是一个转换数据的工具。下载地址是://sourceforge.net/projects/json-lib/files/ 。在其网站上可以下载源代码json-lib-2.3-jdk15-sources.jar包、json-lib-2.3-jdk15-javadoc.jar文档包、json-lib-2.3-jdk15.jar核心包。将其下载下来放入项目的classpath下。在使用json-lib-2.3包时还要其它的依赖包:

package com.iotek;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONFunction;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
 
public class JSONTest {
       public static void main(String[] args) {
              JSONTest tt = new JSONTest ();
              tt.formatJSONOBject()
              // tt. formatJSONArray();
              // tt. formatJSONMap();
       }
       public void formatJSONOBject() {
              JSONObject obj = new JSONObject();
              obj.put("name", "foo");
              obj.put("num", new Integer(100));
              obj.put("balance", new Double(1000.21));
              obj.put("is_vip", new Boolean(true));
              obj.put("nickname", null);
              System.out.print(obj);
       }
       public void formatJSONArray() {
              JSONArray ja = new JSONArray();
              Person person = new Person();
              person.setId(1);
              person.setName("linla");
              ja.add(person);
              System.out.print(ja);
       }
       public void formatJSONMap() {
              Mapmap = new HashMap();
              Person person = new Person();
              person.setId(1);
              person.setName("linla");
              map.put("t1", person);
              JSONArray ja = new JSONArray();
              ja.element(map);
              System.out.println(ja);
       }
}

希望这篇文章可以帮助到你,总之同学们,IT资讯尽在职坐标。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

熟悉企业软件开发的产品设计及开发

  • 57
    文章
  • 12660
    人气
  • 85%
    受欢迎度

已有47人表明态度,85%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
java语言实现栈的顺序存储与链式存储
经验技巧 100% 的用户喜欢
一天天都在说hadoop,到底什么才是hadoop呢?
经验技巧 57% 的用户喜欢
WEB前端之div css 层级
经验技巧 100% 的用户喜欢
WEB前端之div css 绝对定位
经验技巧 100% 的用户喜欢
Java语言之Java Socket NIO示例
经验技巧 67% 的用户喜欢
其他海同师资 更多>>
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
范佺菁
范佺菁 联系TA
擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!
金延鑫
金延鑫 联系TA
擅长与学生或家长及时有效沟通
程光淼
程光淼 联系TA
精通C、C++等语言、智能芯片开发
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程