JSON的使用

目录

1、什么是 JSON

2、JSON 对象定义和基本使用

2.1、JSON 的定义

2.2、JSON 对象的访问

3、JSON 中两个常用的方法

4、JSON 在 java 中的使用

1、什么是 JSON

        JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析 和生成。 它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一 个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java, JavaScript, Perl, Python 等)。 这些特性使JSON 成为理想的数据交换语言。

2JSON 对象定义和基本使用

        在标准的 json 格式中,json 对象由在括号括起来,对象中的属性也就是 json key 是一个字符串,所以一定要使用 双引号引起来。每组 key 之间使用逗号进行分隔。

2.1JSON 的定义

Json 定义格式:
var 变量名 = {
        “key” : value ,             // Number 类型
        “key2” : “value” ,        // 字符串类型
        “key3” : [] ,                 // 数组类型
        “key4” : {},                  // json 对象类型
        “key5” : [{},{}]             // json 数组
        };
var jsons = {
"key1":"abc", // 字符串类型
"key2":1234, // Number
"key3":[1234,"21341","53"], // 数组
"key4":{ // json 类型
"key4_1" : 12,
"key4_2" : "kkk"
},
"key5":[{ // json 数组
"key5_1_1" : 12,
"key5_1_2" : "abc"
},{
"key5_2_1" : 41,
"key5_2_2" : "bbj"
}]
};

2.2JSON 对象的访问

        json 对象,顾名思义,就知道它是一个对象。里面的 key 就是对象的属性。我们要访问一个对象的属性,只需要使用【对象名. 属性名】的方式访问即可。
<script type="text/javascript">
// json 的定义
var jsons = {
"key1":"abc", // 字符串类型
"key2":1234, // Number
"key3":[1234,"21341","53"], // 数组
"key4":{ // json 类型
"key4_1" : 12,
"key4_2" : "kkk"
},
"key5":[{ // json 数组
"key5_1_1" : 12,
"key5_1_2" : "abc"
},{
"key5_2_1" : 41,
"key5_2_2" : "bbj"
}]
};
// 访问 json 的属性
“玩转”Java 系列
alert(jsons.key1); // "abc"
// 访问 json 的数组属性
alert(jsons.key3[1]); // "21341"
// 访问 json 的 json 属性
alert(jsons.key4.key4_1);//12
// 访问 json 的 json 数组
alert(jsons.key5[0].key5_1_2);//"abc"
</script>

3JSON 中两个常用的方法

JSON 对象和字符串对象的互转:
JSON.stringify( json );                 此方法可以把一个 json 对象转换成为 json 字符串
JSON.parse( jsonString );           此方法可以把一个 json 字符串转换成为 json 对象
<script type="text/javascript">
// 一个 json 对象
var obj = {
"a" : 12,
"c" : "str"
};
// 把 json 对象转换成为字符串对象
var objStr = JSON.stringify(obj);
//
alert(objStr);
// 把 json 对象的字符串,转换成为 json 对象
var jsonObj = JSON.parse(objStr);
alert(jsonObj);
</script>

4、JSON 在 java 中的使用

        我们要使用 json 和 java 中使用,我们需要使用到一个第三方的包。它就是 gson.jar。Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
json java 中的操作。常见的有三种情况。
        1、 java 对象和 json 的转换
        2、 java 对象 list 集合和 json 的转换
        3、 map 对象和 json 的转换
public class GsonTest {
static class Person {
private int age;
private String name;
public Person() {
// TODO Auto-generated constructor stub
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
// 要把复杂的 json 字符串转换成为 java 对象。需要继承 TypeToken 类。
// 并把返回的类型当成 TypeToken 的泛型注入
static class PersonType extends TypeToken<List<Person>> {
}
public static void main(String[] args) {
// json 操作,一定要先 new 一个 gson 对象。
Gson gson = new Gson();
// java 对象--json
Person person = new Person(12, "wzg168");
// 把对象转成为 json 字符串
String personjson = gson.toJson(person);
System.out.println(personjson);
// 把 json 字符串转换成为 java 对象
Person p = gson.fromJson(personjson, Person.class);
System.out.println(p);
System.out.println("------------------------------------------");
// 2、java 对象 list 集合和 json 的转换
List<Person> list = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
list.add(new Person(10 * i, "name-" + i));
}
String jsonListString = gson.toJson(list);
System.out.println(jsonListString);
// 把 json 数组转换成为 List 对象
// List<Person> ps = gson.fromJson(jsonListString, new PersonType().getType());
// 我们也可以使用匿名内部类
List<Person> ps = gson.fromJson(jsonListString, new TypeToken<List<Person>>() {
}.getType());
System.out.println(ps);
System.out.println("------------------------------------------");
// 3、map 对象和 json 的转换
Map<String, Person> mapPerson = new HashMap<String, GsonTest.Person>();
// 添加 person 到 map 中
mapPerson.put("p1", new Person(1, "person-1"));
mapPerson.put("p2", new Person(2, "person-2"));
// 把 map 转换成为 json 对象
String jsonMapString = gson.toJson(mapPerson);
System.out.println(jsonMapString);
// 通过使用匿名内部类的方式
Map<String, Person> map = gson.fromJson(jsonMapString,
new TypeToken<HashMap<String, Person>>() {}.getType());
System.out.println(map);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值