当前位置: 代码迷 >> J2EE >> java 中的json 解码和编码有关问题
  详细解决方案

java 中的json 解码和编码有关问题

热度:5573   发布时间:2013-02-25 21:39:31.0
java 中的json 解码和编码问题
  我现在 ,想做一个 json 如何 编码 和解码 ,听说不是很难 ,我第一次做 ,请求代码。
json?java
我给你发两个例子吧。。
我以前自己写的,感觉这个就是原型,在复杂的json串也是在这基础之上添加的。
我刚开始也不会用json串,但是通过一天的学习和自己尝试之后,现在一般的json串是没有问题了。。
解决json一般有两种方式,一个是MapperfromObject
那种网上的例子很多,就不说了。
我用的是第二种:
当然,第二种需要建javaBean的类
首先,需要jar包:import org.codehaus.jackson.map.ObjectMapper;
JavaBeanToJson

public class JavaBeanToJson {
public static void main(String[] args) {说白了就是一个字符串,用不着什么编码解码的,说的这么好听。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
  相关解决方案