java 中的json 解码和编码问题
我现在 ,想做一个 json 如何 编码 和解码 ,听说不是很难 ,我第一次做 ,请求代码。
json?java
------解决方案--------------------说白了就是一个字符串,用不着什么编码解码的,说的这么好听。
------解决方案--------------------JSON用于描述数据结构,有以下形式存在。
对象 (object):一个对象以“{”开始,并以“}”退出。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用“,”分区。
名称/值(collection):名称和值之间使用“:”隔开,一般的形式是:
{name:value}
一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。
值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:
[collection, collection]
字符串:以""括起来的一串字符。
数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。
布林值:表示为 true 或者 false。
在很多语言中它被为和解释为数组。
JSON的格式描述可以参考RFC 4627。
应用领域
WEB开发
JSON最开始被广泛的应用于WEB应用的开发,随着Web2.0的方兴未艾,JSON在WEB数据传输领域占有重要的地位。
NoSQL数据库
相对于传统的关系型数据库,一些基于文档存储的NoSQL非关系型数据库选择JSON作为其数据存储格式,比较出名的产品有:MongoDB、CouchDB、RavenDB等。
举例
{
"firstName": "John",
"lastName": "Smith",
"male": true,
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
安全性问题
读取 JSON
由于 JSON 是 JavaScript 的子集,所以一般都会使用 eval() 作为读取数据的方式,如果是针对可靠的数据来源,在不支持原生 JSON 解析的浏览器上面这是最快速的方法。然而由于 eval 方法同样可以执行任意的 JavaScript 代码,因此当数据来源不可靠时则可能产生安全性问题。如下面的例子,直接用 eval 执行时会跳转:
var json = {
message: (function () { window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })()
};
------解决方案--------------------使用JSON开发包呗:http://www.json.org/java/index.html
------解决方案--------------------我给你发两个例子吧。。
我以前自己写的,感觉这个就是原型,在复杂的json串也是在这基础之上添加的。
我刚开始也不会用json串,但是通过一天的学习和自己尝试之后,现在一般的json串是没有问题了。。
解决json一般有两种方式,一个是MapperfromObject
那种网上的例子很多,就不说了。
我用的是第二种:
当然,第二种需要建javaBean的类
首先,需要jar包:import org.codehaus.jackson.map.ObjectMapper;
JavaBeanToJson
public class JavaBeanToJson {
public static void main(String[] ar