JSON的parse()方法

parse()方法的介绍:

在接收服务器数据时一般是字符串。

我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

语法

JSON.parse(text[, reviver])

参数说明:

  • text:必需, 一个有效的 JSON 字符串。
  • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

下面我们来看一个实例:

<p id="demo"></p>

<script>

var obj = JSON.parse('{ "name":google", "alexa":10000, "site":"www.google.com" }');

document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;

</script>

首先通过parse()方法将JSON数据转换为JavaScript对象,

解析完成后,我们就可以在网页上使用JSON数据了

从服务端接收 JSON 数据(数组JSON数据)

我们可以使用 AJAX 从服务器请求 JSON 数据,并解析为 JavaScript 对象。

eg:

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {

if (this.readyState == 4 && this.status == 200) {

myObj = JSON.parse(this.responseText);

document.getElementById("demo").innerHTML = myObj.name;

} };

xmlhttp.open("GET", "/try/ajax/json_demo.txt", true); xmlhttp.send();

json_demo.txt服务端数据需要自个编写。

JSON中有个异常解析数据

JSON 不能存储 Date 对象。如果你需要存储 Date 对象,需要将其转换为字符串。之后再将字符串转换为 Date 对象。

<p id="demo"></p>

<script>           //将字符串转换为data对象

var text = '{ "name":"csdn", "initDate":"2013-12-14", "site":"www.csdn.com"}';
var obj = JSON.parse(text);
obj.initDate = new Date(obj.initDate);

document.getElementById("demo").innerHTML = obj.name + "创建日期: " + obj.initDate;

</script>

这时我们可以启用JSON的第二个参数:

<p id="demo"></p>

<script>

var text = '{ "name":"csdn", "initDate":"2013-12-14", "site":"www.csdn.com"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});

document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

解析函数:

JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

var text = '{ "name":"Runoob", "alexa":"function () {

return 10000;}",

"site":"www.runoob.com"}';

var obj = JSON.parse(text);

obj.alexa = eval("(" + obj.alexa + ")");            注意:最好不要在json中使用函数

document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

Fastjson 中的 `JSON.parse()` 方法用于将 JSON 字符串解析为 Java 对象或者数组。该方法有多个重载形式,可以根据传入的参数类型不同返回不同的对象类型。 以下是 `JSON.parse()` 方法的几种常用形式: 1. 返回 JSONObject 对象 ```java public static JSONObject parseObject(String text); public static JSONObject parseObject(String text, Feature... features); public static JSONObject parseObject(String text, ParserConfig config); public static JSONObject parseObject(String text, TypeReference<?> type, Feature... features); ``` 示例: ```java String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; JSONObject jsonObj = JSON.parseObject(jsonStr); ``` 2. 返回 JSONArray 对象 ```java public static JSONArray parseArray(String text); public static JSONArray parseArray(String text, Feature... features); public static JSONArray parseArray(String text, ParserConfig config); public static <T> List<T> parseArray(String text, Class<T> clazz, Feature... features); public static <T> List<T> parseArray(String text, TypeReference<T> type, Feature... features); ``` 示例: ```java String jsonStr = "[\"apple\",\"banana\",\"orange\"]"; JSONArray jsonArray = JSON.parseArray(jsonStr); ``` 3. 返回指定类型的 Java 对象 ```java public static <T> T parseObject(String text, Class<T> clazz); public static <T> T parseObject(String text, TypeReference<T> type, Feature... features); ``` 示例: ```java String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; User user = JSON.parseObject(jsonStr, User.class); ``` 其中,`User` 是一个自定义的 Java 类型。 4. 返回任意类型的 Java 对象 ```java public static <T> T parseObject(String text, Type type, Feature... features); ``` 示例: ```java String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; Type userType = new TypeReference<User>(){}.getType(); User user = JSON.parseObject(jsonStr, userType); ``` 其中,`TypeReference<User>(){}.getType()` 用于获取 `User` 类型的反射对象。 以上就是 `JSON.parse()` 方法的常用形式和示例。在使用时,可以根据需要选择不同的重载形式,以便正确地解析 JSON 字符串并转换为指定的 Java 对象类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值