JSON对象及方法

1、JSON

JSON 包括 JSON 字符串和 JSON 对象。JSON 通常用于与服务端交换数据,在给服务器接收和发送数据时用的都是字符串,可以是 JSON 字符串或者一般的键值对字符串。把JavaScript对象转化为 JSON 对象用 JOSN.strigfy() 方法,可以使用 JSON.parse() 方法将接收到的数据转换为 JavaScript 对象。

JSON 文本的 MIME 类型是 "application/json"

2、JSON 字符串

JOSN字符串由单引号或者双引号引起来。

var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
alert(person);//{"name":"zhangsan","sex":"男","age":"24"}
alert(typeof person);//string

person就是一个json字符串,之所以叫json字符串,因为字符串的格式符合json的格式

3、JSON对象

JSON 对象只包含两个方法: 用于解析JSON字符串的 parse() 方法,以及将对象/值转换为 JSON字符串的 stringify() 方法。除了这两个方法,JSON这个对象本身并没有其他作用,也不能被调用或者作为构造函数调用。

3.1、JSON.parse()

JSON.parse() 方法将一个 JSON 字符串转换为对象,并返回该对象。若有回调函数作为第二个参数,则对转换后的对象的每个成员调用该函数,但是此时不返回该对象了,返回值为undefined。

JSON.parse(text, func);   //text:必需,JSON 字符串;  func: 可选,一个函数,将为对象的每个成员调用此函数。

示例:

var text = '{"aaa":[' + '{"name":"wen","site":"aaa" },' + '{"name":"hai","site":"bbb" }]}';
var obj = JSON.parse(text);
var str = obj.aaa[1].name + " " + obj.aaa[1].site;
console.log(str);    //hai bbb

使用回调函数

var i = 0;
var obj = JSON.parse('{"1": a, "2": b, "3": 333}', function (k, v) {
  i++
  console.log(k,v,i,'--');  //1 a 1 --   2 b 2 --   3 333 3 --    '' {} 4    执行了四次,最后一个的属性值为空字符串 ""
});
console.log(obj);   //undefined

3.2、JSON.stringify()

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

JSON.stringify(value, func, space);  //value:JavaScript值,通常为对象或者数组; func:回调函数; space:指定一定数目的缩进空格

示例:

var str = { "name": "菜鸟教程"}
var str_pretty1 = JSON.stringify(str);
console.log(str_pretty1);   //{"name":"菜鸟教程"}
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
console.log(str_pretty2);    
//{
//    "name": "菜鸟教程"
//}

  

教程:http://www.runoob.com/js/js-json.html

转载于:https://www.cnblogs.com/wenxuehai/p/10340326.html

对象数组转json对象方法有多种方式。 1. 使用JSON库:可以使用现有的JSON库,如json-lib、fastjson等,首先将对象数组转换成java.util.List对象,然后使用JSON库将List对象转换成JSON字符串,最后再将JSON字符串转换成JSON对象。例如使用fastjson库的代码如下: ``` import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class Main { public static void main(String[] args) { // 假设有一个对象数组 Person[] persons = new Person[2]; persons[0] = new Person("张三", 20); persons[1] = new Person("李四", 30); // 将对象数组转换成JSONArray JSONArray jsonArray = (JSONArray) JSONArray.toJSON(persons); // 将JSONArray转换成JSONObject JSONObject jsonObject = new JSONObject(); jsonObject.put("persons", jsonArray); // 输出JSON对象 System.out.println(jsonObject.toJSONString()); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // getter和setter方法 } ``` 2. 手动拼接:也可以手动拼接JSON字符串,遍历对象数组的每个对象,将其属性值拼接成键值对的形式,再将这些键值对拼接成JSON字符串。例如: ``` public class Main { public static void main(String[] args) { // 假设有一个对象数组 Person[] persons = new Person[2]; persons[0] = new Person("张三", 20); persons[1] = new Person("李四", 30); // 手动拼接JSON字符串 StringBuilder json = new StringBuilder(); json.append("["); for (int i = 0; i < persons.length; i++) { json.append("{\"name\": \"").append(persons[i].getName()).append("\", \"age\": ").append(persons[i].getAge()).append("}"); if (i < persons.length - 1) { json.append(","); } } json.append("]"); // 输出JSON字符串 System.out.println(json.toString()); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // getter和setter方法 } ``` 以上是两种常见的将对象数组转换成JSON对象方法,可以根据实际需要选择适合的方式进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值