php抓取网页json数据( javajar修改servletjava代码代码使用方法代码详解)

优采云 发布时间: 2021-10-30 22:15

  php抓取网页json数据(

javajar修改servletjava代码代码使用方法代码详解)

  JS中Json数据的处理和解析JSON数据的方法详解

  JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 ECMAScript 的一个子集。JSON 使用完全独立于语言的文本格式,但也使用类似于 C 语言家族(包括 C、C++、C#、Java、JavaScript、Perl、Python 等)的习惯。这些特性使 JSON 成为一种理想的数据交换语言。便于人读写,也便于机器解析生成(通常用于提高网络传输速率)。

  JSON 的规则很简单:对象是“名称/值对”的无序集合。对象以“{”(左括号)开头,以“}”(右括号)结尾。每个“名称”后跟一个“:”(冒号);“'name/value' 对”由“,”(逗号)分隔。具体细节参考

  举个简单的例子:

  js代码

  

function showJSON() {

var user =

{

"username":"andy",

"age":20,

"info": { "tel": "123456", "cellphone": "98765"},

"address":

[

{"city":"beijing","postcode":"222333"},

{"city":"newyork","postcode":"555666"}

]

}

alert(user.username);

alert(user.age);

alert(user.info.cellphone);

alert(user.address[0].city);

alert(user.address[0].postcode);

}

  这表示具有用户名、年龄、信息、地址等属性的用户对象。

  也可以用JSON简单的修改数据,修改上面的例子

  js代码

  

function showJSON() {

var user =

{

"username":"andy",

"age":20,

"info": { "tel": "123456", "cellphone": "98765"},

"address":

[

{"city":"beijing","postcode":"222333"},

{"city":"newyork","postcode":"555666"}

]

}

alert(user.username);

alert(user.age);

alert(user.info.cellphone);

alert(user.address[0].city);

alert(user.address[0].postcode);

user.username = "Tom";

alert(user.username);

}

  JSON 提供了 json.js 包。下载后,导入它,然后简单地使用 object.toJSONString() 将其转换为 JSON 数据。

  js代码

  

function showCar() {

var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");

alert(carr.toJSONString());

}

function Car(make, model, year, color) {

this.make = make;

this.model = model;

this.year = year;

this.color = color;

}

  您可以使用 eval 将 JSON 字符转换为 Object

  js代码

  

function myEval() {

var str = '{ "name": "Violet", "occupation": "character" }';

var obj = eval('(' + str + ')');

alert(obj.toJSONString());

}

  或者使用 parseJSON() 方法

  js代码

  

function myEval() {

var str = '{ "name": "Violet", "occupation": "character" }';

var obj = str.parseJSON();

alert(obj.toJSONString());

}

  下面用prototype写一个JSON ajax例子。

  先写一个servlet(我的是servlet.ajax.JSONTest1.java),写一句

  代码

  

response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");

  在页面中写一个ajax请求

  js代码

  

function sendRequest() {

var url = "/MyWebApp/JSONTest1";

var mailAjax = new Ajax.Request(

url,

{

method: 'get',

onComplete: jsonResponse

}

);

}

function jsonResponse(originalRequest) {

alert(originalRequest.responseText);

var myobj = originalRequest.responseText.parseJSON();

alert(myobj.name);

}

  Prototype-1.5.1.js 提供了JSON方法,String.evalJSON(),不使用json.js也可以修改上面的方法

  js代码

  

function jsonResponse(originalRequest) {

alert(originalRequest.responseText);

var myobj = originalRequest.responseText.evalJSON(true);

alert(myobj.name);

}

  JSON也提供了java jar包API也很简单,这里举个例子

  在javascript中填写请求参数

  js代码

  

function sendRequest() {

var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");

var pars = "car=" + carr.toJSONString();

var url = "/MyWebApp/JSONTest1";

var mailAjax = new Ajax.Request(

url,

{

method: 'get',

parameters: pars,

onComplete: jsonResponse

}

);

}

  使用JSON请求字符串,可以简单的生成解析JSONObject,修改servlet添加JSON处理(使用json.jar)

  代码

  

private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {

String s3 = request.getParameter("car");

try {

JSONObject jsonObj = new JSONObject(s3);

System.out.println(jsonObj.getString("model"));

System.out.println(jsonObj.getInt("year"));

} catch (JSONException e) {

e.printStackTrace();

}

response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");

}

  您还可以使用 JSONObject 生成 JSON 字符串和修改 servlet

  代码

  

private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {

String s3 = request.getParameter("car");

try {

JSONObject jsonObj = new JSONObject(s3);

System.out.println(jsonObj.getString("model"));

System.out.println(jsonObj.getInt("year"));

} catch (JSONException e) {

e.printStackTrace();

}

JSONObject resultJSON = new JSONObject();

try {

resultJSON.append("name", "Violet")

.append("occupation", "developer")

.append("age", new Integer(22));

System.out.println(resultJSON.toString());

} catch (JSONException e) {

e.printStackTrace();

}

response.getWriter().print(resultJSON.toString());

}

  js代码

  

function jsonResponse(originalRequest) {

alert(originalRequest.responseText);

var myobj = originalRequest.responseText.evalJSON(true);

alert(myobj.name);

alert(myobj.age);

}

  下面重点介绍JS中json数据的处理

  1、 json 数据结构(对象和数组)

  json 对象:var obj = {"name":"xiao","age":12};

  json 数组:var objArray = [{"name":"xiao","age":12},{"name":"xiao","age":12}];

  2、 处理json数据,依赖文件为:jQuery.js

  3、注:在数据传输过程中,json数据以文本形式存在,即字符串格式;

  JS 语言操作 JS 对象;

  所以json字符串和JS对象的转换是关键;

  4、数据格式

  json字符串:var json_str ='{"name":"xiao","age":12}';

  Josn 对象:var obj = {"name":"xiao","age":12};

  JS对象:对象{名称:“xiao”,年龄:12}

  5、类型转换

  Json字符串——>JS对象,使用方法:

  笔记:

  json_str 和 obj 代表本文副标题 4 中的数据类型;

  

obj = JSON.parse(json_str);

obj = jQuery.parseJSON(json_str);

  注意:如果传入格式错误的json字符串(例如:'{name:"xiao",age:12}'),会抛出异常;

  Json 字符串格式,严格格式:'{"name":"xiao","age":12}'

  JS 对象 -> Json 字符串:

  json_str = JSON。字符串化(对象);

  笔记:

  1、eval()是JS原生函数,使用这种形式:eval('('+'{name:"xiao",age:12}'+')'),不安全,不能保证类型转换是一个JS对象;

  2、 以上3种方法均已通过chrome浏览器测试,以下为测试结果截图;

  Json 字符串 -> JS 对象;

  JS 对象 -> Json 字符串:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线