首页 > 实用文档 > 知识 >

jison在线解析

编辑:  成考报名   发布时间:09-30    阅读:

JSON 教程
jison在线解析 第一篇

JSON 教程   JSON 教程 JSON 简介 JSON:JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。 每一章中用到的实例 { "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] } 这个 employee 对象是包含 3 个员工记录(对象)的数组。 什么是 JSON ?     JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许 多不同的编程语言。 JSON - 转换为 JavaScript 对象 JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。 1

SON 简介   JSON 教程 JSON 语法 亲自试一试 - 实例 通过我们的编辑器,您可以在线编辑 JavaScript 代码,然后通过点击一个按钮来查看结果: <html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2> <p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p> <script type="text/javascript"> var JSONObject= { "name":"Bill Gates", "street":"Fifth Avenue New York 666", "age":56, "phone":"555 1234567"}; document.getElementById("jname").innerHTML=JSONObject.name document.getElementById("jage").innerHTML=JSONObject.age document.getElementById("jstreet").innerHTML=JSONObject.street document.getElementById("jphone").innerHTML=JSONObject.phone </script> </body> </html> 亲自试一试 类似 XML         JSON 是纯文本 JSON 具有“自我描述性”(人类可读) JSON 具有层级结构(值中存在值) JSON 可通过 JavaScript 进行解析 JSON 数据可使用 AJAX 进行传输 相比 XML 的不同之处 没有结束标签 更短 读写的速度更快 2

   能够使用内建的 JavaScript eval() 方法进行解析 使用数组 不使用保留字 为什么使用 JSON? 对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用: 使用 XML    读取 XML 文档 使用 XML DOM 来循环遍历文档 读取值并存储在变量中 使用 JSON   读取 JSON 字符串 用 eval() 处理 JSON 字符串 JSON 语法   JSON 简介 JSON 使用 JSON 语法是 JavaScript 语法的子集。 JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集。     数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是:名称/值对。 名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值: "firstName" : "John" 这很容易理解,等价于这条 JavaScript 语句: firstName = "John" JSON 值 JSON 值可以是:  数字(整数或浮点数) 3

     字符串(在双引号中) 逻辑值(true 或 false) 数组(在方括号中) 对象(在花括号中) null JSON 对象 JSON 对象在花括号中书写: 对象可以包含多个名称/值对: { "firstName":"John" , "lastName":"Doe" } 这一点也容易理解,与这条 JavaScript 语句等价: firstName = "John" lastName = "Doe" JSON 数组 JSON 数组在方括号中书写: 数组可包含多个对象: { "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] } 在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。 JSON 使用 JavaScript 语法 因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。 通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值: 例子 var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } 4

]; 可以像这样访问 JavaScript 对象数组中的第一项: employees[0].lastName; 返回的内容是: Gates 可以像这样修改数据: employees[0].lastName = "Jobs"; 亲自试一试 在下面的章节,您将学到如何把 JSON 文本转换为 JavaScript 对象。 JSON 文件   JSON 文件的文件类型是 ".json" JSON 文本的 MIME 类型是 "application/json" JSON 使用   JSON 语法 JSON 教程 把 JSON 文本转换为 JavaScript 对象 JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转 换为 JavaScript 对象,然后在网页中使用该数据。 为了更简单地为您讲解,我们使用字符串作为输入进行演示(而不是文件)。 JSON 实例 - 来自字符串的对象 创建包含 JSON 语法的 JavaScript 字符串: var txt = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}'; 由于 JSON 语法是 JavaScript 语法的子集, JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。 5

API文档大全(120+) JS在线编辑演示
jison在线解析 第二篇

Git代码托管 API文档大全(120+) JS在线编辑演示 二维码

为所有资源查找重写当前线程的 CurrentUICulture 属性,

方法是使用此强类型资源类。

internal class Resources

{

private static global::System.Resources.ResourceManager resourceMan;

private static global::System.Globalization.CultureInfo resourceCulture; 6[C#] JZ.Project 19小时前 嘟嘟嘟嘟丶药

24[C#] 基于C#的黄金数据接口调用代码实例 1天前 app接口

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]

internal Resources()

{

}

开源中国-程序员在线工具:更多»

相关的代码(397)

53[C#] sql注入之关键字过滤 2天前 HJCui

<summary>

返回此类使用的、缓存的 ResourceManager 实例。

<summary>

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]

internal static global::System.Resources.ResourceManager ResourceManager {

get

{

if ((resourceMan == null))

{

global::System.Resources.ResourceManager temp = new

global::System.Resources.ResourceManager("ExcelToDB_Form.Properties.Resources", typeof(Resources).Assembly);

resourceMan = temp;

}

return resourceMan;

}

}[文件] TableDataPanel.java ~ 7KB

package com.yisin.cf.form;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.List;

import java.util.Map;

import java.util.Vector;

53[C#] 基于C#的重仓股基金接口调用代码实例 1周前 php接口开发

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextArea;

import javax.swing.UIManager;

import javax.swing.plaf.InsetsUIResource;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;【jison在线解析】

56[C#] 基于C#的货币汇率接口调用代码实例 2周前 app接口开发

import com.yisin.cf.db.DBHelper;

import com.yisin.cf.util.SQLFormatter;

public class TableDataPanel extends BasePanel {

private String sql = "";

private String tableName = "";

private int width = 900, height = 600;

public TableDataPanel(int width, int height) {

this.width = width;

this.height = height;

initCommpant();

}

public void viewTableData(String tableName) {

if (tableName != null) {

this.tableName = tableName;

sql = "select * from " + tableName + " limit 0, 1000"; // 执行SQL

excuteSql();

} else {

sql = "";

}

sqlArea.setText(sql);

}

public JTextArea sqlArea;

public JTextArea infoArea;

public JTable dataTable;

public DefaultTableModel model = null;

public JButton excuteBtn;

public JButton formatBtn;

public JScrollPane tabJsp;

public JScrollPane infoJsp;

[代码] [Google Go]代码

package main

import (

"io/ioutil"

"net/http"

"net/"

"fmt"

"encoding/json"

)

//----------------------------------

// 黄金数据调用示例代码 - 聚合数据

// 在线接口文档:

//----------------------------------

const APPKEY = "*******************" //您申请的APPKEY

func main(){

//1.上海黄金交易所

Request1()

//2.上海期货交易所

Request2()

//3.银行账户黄金

Request3()

}

//1.上海黄金交易所

func Request1(){

//请求地址

juhe/finance/gold/shgold"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参 param.Set("key",APPKEY) //APP Key

param.Set("v","") //JSON格式版本(0或1)默认为0

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

//2.上海期货交易所

func Request2(){

//请求地址

juhe/finance/gold/shfuture"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参 param.Set("key",APPKEY) //APP Key

param.Set("v","") //JSON格式版本(0或1)默认为0

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

【jison在线解析】

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

//3.银行账户黄金

func Request3(){

//请求地址

juhe/finance/gold/bankgold"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参 param.Set("key",APPKEY) //APP Key

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

// get 网络请求

func Get(api string,params .Values)(rs[]byte ,err error){

var *.

,err=.Parse(api)

if err!=nil{

fmt.Printf("解析错误:\r\n%v",err)

return nil,err

}

//如果参数中有中文参数,这个方法会进行Encode

.RawQuery=params.Encode()

resp,err:=http.Get(.String())

if err!=nil{【jison在线解析】

fmt.Println("err:",err)

return nil,err

}

defer resp.Body.Close()

return ioutil.ReadAll(resp.Body)

}

超级经典聊天室系统实现 Ajax+PHP+Js+Json无刷新技术
jison在线解析 第三篇

Ajax+Javascript+Json技术想必同学们也跟我学了这么多天了,也许有很多同学们不禁要问,Ajax除了做验证、下拉菜单联动...还能做什么,我想说这个问题问的太好了,接下来我们就来说说Ajax到底还能做哪些?Web2.0时代,ajax能做的事情实在是太多了,用途也比较广泛,

比如:在面向消费者的诸多应用当中,Google的Gmail和GoogleMaps就是最常见的例子。在Gmail当中,AJAX负责如何开启线程会话,以显示不同邮件的文本内容。而在Maps当中,AJAX允许用户以一种似乎无缝的方式拖拉及滚动地图。

还有雅虎的Flickr像片共享应用和亚马逊网站的A9搜索引擎。另外,雅虎新的Web邮件服务可能很快就会吸引AJAX支持者的莫大关注,这项服务基于雅虎收购Oddpost后得到的技术。

然而,AJAX应用软件厂商越来越把目光瞄准了企业。譬如说,Scalix的WebAccess电子邮件应用软件其实比微软Outlook自己的Web邮件界面更像Outlook。

说了那么多应用,我们今天先来学习一个比较简单、经典的ajax应用:简易聊天室的实现。

说到聊天室,相信大家并不陌生,我们经常去比较熟悉网易、新浪等门户网站,他们都有对应的聊天室,记得我最多的时候去的是体育赛事聊天室\直播室,那看似很神秘的聊天室,是怎么实现的呢?好多同学也肯定比较好奇,如果你比较好奇的话,就跟我往下看吧,

效果图:

聊天室的实现思路:【jison在线解析】

聊天室,给我们的第一印象是就是一个实时的在线交流平台,谁都可以进去,进去后可以直接说话,和大家聊天。

那如果要开发一个聊天室应该解决那些技术问题?

我们来分析一下:

1)要解决数据存储的问题(聊天的内容存储到哪里)

2)数据要实时的显示在网页上(最新的聊天内容要及时的显示出来)

3)何时为用户在线,何时用户下线

4)处理一些小的细节,比如聊天内容多后,聊天内容跟显示窗口的跟随滚动问题

能够快捷键发送信息等问题。

应该如何解决呢?

接上文,我们提出了实现聊天室必须要解决的问题,下面我们来一起探讨下,这些问题将如何解决。

1)关于数据存储的问题。 数据存储可以采用多种形式,如:xml、写入文件,在其他语言中还是可以用application这个全局变量,而在PHP中没有这个全局变量,需要自己封装,还用使用数据库存储数据。本人比较懒惰,呵呵,使用数据库技术实现对数据的存储,这样即有利于数据的永久保存,更方便我们书写代码。

2)数据显示的问题。数据显示的问题也可以通过多种方法来实现,比如:可以定时让网页刷新,每次刷新从数据库中读取数据,但是这种方法的最大问题是,每次可能会从数据库中取出所有的聊天信息,这样效率太差了。如果同时有几百个人同时在线,那么这个

聊天室就会很慢很卡了,还有一种技术是采用Ajax技术实现局部刷新技术,动态的读取所需要的数据,这里应该说明一点要,实现聊天室一定要考虑性能、效率问题,所以读取数局决不能读取所有数据,而是要每次读取最后一条或者几条最新的数据...

我的这个聊天室已经实现这部分,请大家继续往下看。

3)判断用户何时在线,何时离线。我们的在线用户列表中显示的是在线的用户,那何时判断用户在线情况的呢,我们这里是这样处理的,首先当用户进入聊天室的时候,需要初始化聊天室信息,以后每隔一段时间读取一次数据库,而我正是利用这点每次把用户的IP插入和当前时间插入到数据库中,当然,当当前用户IP已经存在当前表中,则我直接更新用户的最后一次登录时间,所以当用户没有离开这个页面,我都认为是在线。否则的情况是离线,离线的时候应该从用户在线表中删除当前用户的信息,最后把所有的用户显示到在线列表中。

4)聊天室的一些特殊的处理。这里特殊处理包括当文字内容特别多的时候,会出现滚动条,让滚动条跟随内容滚动到底部,处理一些快捷键,直接可以发送信息等。 下面直接看源码:

聊天室登录页面 1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"

2. <html xmlns="

3. <head>

4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"

/>

5. <title>欢迎使用AJAX聊天室</title>

6. </head>

7.

8. <body>

9. <form action="chatindex.php" name="form1" method="post">

10. <table width="400" border="1" align="center">

11. <tr>

12. <th height="52" colspan="2" scope="col">欢迎使用AJAX聊天室</th>

13. </tr>

14. <tr>

15. <td width="107">用户名:</td>

16. <td width="277"><input type="text" name="username" /></td>

17. </tr>

18. <tr>

19. <td>密 码:</td>

20. <td><input type="password" name="password" /></td>

21. </tr>

22. <tr>

23. <td></td>

24. <td><input type="submit" value="进入聊天室" /><input type="reset"

value="取消"></td>

25. </tr>

26. </table> 27. </form>

28. <p align="center">河北软件职业技术学院CSDN学院PHP方向 版权所有

copyright 2011</p>

29. </body>

30. </html>

复制代码

聊天室首页: 1.

2.

3.

4.

5.

6.

7.

8.

9. <?php session_start(); if(!isset($_SESSION['user'])) { $_SESSION['user']=$_POST['username']; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"

10. <html xmlns="

11. <head>

12. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"

/>

13. <title>欢迎使用AJAX聊天室</title>

14. <style>

15. .content{

16. height:300px;

17. width:616px;

18. font-size:14px;

19. color:#666666;

20. overflow:scroll;

21. background-color:#FFFF99;

22.

23. }

24. .sendtext{

25. color: #009900;

26. background-color:#CCFFCC;

27. font-size:14px;

28. }

29. .users{

30. width:170px;

31. }

32. .send{

33. width:60px;

34. height:50px;

35. color:#0033CC;}

【jison在线解析】

36. </style>

37. </head>

38.

39. <body>

40. <table width="800" height="360" border="0" align="center"

cellpadding="1" cellspacing="1" bgcolor="#993399">

41. <tr>

42. <th width="616" height="31" bgcolor="#FFFFFF" scope="col">欢迎, <?php

echo $_SESSION['user']; ?> 进入聊天室

43. <input type="hidden" id="user" value="<?php echo

$_SESSION['user']; ?>" /></th>

44. <th width="184" rowspan="3" valign="middle" bgcolor="#FFFFFF"

scope="col"><select id="userlist" class="users" size="27"><option>所有人</option></select></th>

45. </tr>

46. <tr>

47. <td bgcolor="#FFFFFF"><div id="content" class="content"></div></td>

48. </tr>

49. <tr>

50. <td bgcolor="#FFFFFF"><table width="800%" border="0" cellspacing="0"

cellpadding="0">

51. <tr>

52. <td width="15%" align="right"><strong>我说:</strong></td>

53. <td width="60%"><textarea id="sendtext" class="sendtext" cols="60"

rows="3" onkeypress="send1()"></textarea></td>

54. <td width="25%" align="center"><input type="button" class="send"

value="发送" onclick="sengMsg()" /></td>

55. </tr>

56. </table></td>

57. </tr>

58. </table>

59. <p align="center">河北软件职业技术学院CSDN学院PHP方向版权所有

copyright 2011<br>聊天室采用ajax+json技术实现</p>

60. </body>

61. </html>

62. <script language="javascript" type="text/javascript"

src="firefoxEvent.js"></script>

63. <script language="javascript" type="text/javascript"

src="../include/ajax.js"></script>

64. <script language="javascript" type="text/javascript">

65. /*

66. 将用户输入的信息保存到数据库

67. */

68. function sengMsg(){

69.

70. //定义对象

71. var xhr=new XMLHttpRequest();

72. //接受用户输入的内容

73. var msg=$("sendtext").value;

74.

75. //获取当前用户名

76. var user=$("user").value;

77. //定义请求的URL

78. var

url=$$("./sendMsg.php?msg="+msg+"&user="+user+"&r="+Math.random());

79. //打开请求

80. xhr.open("get",url,true);

81.

82. xhr.send(null);

83.

84. $("sendtext").value="";

85. }

86.

87.

88.

89. /*

90. 动态的查询数据库,两秒查询一次

91. */

92. var maxid=0;

93.

94. function getMsg(){

95. //获取当前用户名

96. var user=$("user").value;

97.

98. var url="./getMsg.php";

99. var params="maxid="+maxid+"&user="+user;

100.

101. ajaxget(url,params,getMsgProcess);

102.

103. }

104.

105. function getMsgProcess(xhr){

106.

107. var msgObj=eval("("+xhr.responseText+")");

108. var msg=msgObj.Msgs;

109.

●【往下看,下一篇更精彩】●

最新成考报名

  • 立春过后什么时候鱼开口
  • 2021年立春 2021年立春是几点几分
  • 冬至吃啥 南方冬至吃什么
  • 冬至几月几日 今年冬至是几号
  • 烧碱安全救护常识
  • 国庆节高速免费几天
  • 白露与秋分
  • 请示与批复有什么关系