`
nannan408
  • 浏览: 1783167 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

fastjson例子

 
阅读更多
1.前言.
  如题
2.例子.
import com.alibaba.fastjson.JSON;


public class Person {
	int age;
	String 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;
	}
	public static void main(String[] args) {
		String jsonString="{\"name\":\"hah\",\"age\":1}";
		Person person = JSON.parseObject(jsonString, Person.class);
		System.out.println(1);
	}

}


3.参考.
上面为本人的例子,下面是摘录自博客园这位叫PointNet的博主的比较完整的文章:
http://www.cnblogs.com/goody9807/p/4244862.html
二. fastjson 解析json字符串为四种类型

      1. JavaBean

          Person person = JSON.parseObject(jsonString, Person.class);

      2. List<JavaBean>

          List<Person> listPerson =JSON.parseArray(jsonString, Person.class);

      3. List<String>

          List<String> listString = JSON.parseArray(jsonString, String.class);

      4. List<Map<String,Object>>

          List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});  (注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001 , 而通过gson反射结果 为 id =1001.0 ,

 

JSON解析器fastjson(阿里巴巴出品,版本1.1.26),如果定义了JSONObject为{"JACKIE_ZHANG":"张学友","ANDY_LAU":"刘德华","LIMING":"黎明","Aaron_Kwok":"郭富城"},那么读取值时,KEY顺序无序,测试代码:

 

    import com.alibaba.fastjson.JSONObject;  
      
      
    /** 
     * Created by wangzhenfei on 14-4-15. 
     */  
    public class FastJsonTest {  
        public static void main(String[] args){  
            String jsonStr = "{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}" ;  
      
      
            //做5次测试  
            for(int i=0,j=5;i<j;i++)  
            {  
               JSONObject jsonObject = JSONObject.parseObject(jsonStr) ;  
               for(java.util.Map.Entry<String,Object> entry:jsonObject.entrySet()){  
                   System.out.print(entry.getKey()+"-"+entry.getValue()+"\t");  
               }  
                System.out.println();//用来换行  
            }  
        }  
    }  


运行结果:

 

    LIMING-黎明 Aaron_Kwok-郭富城JACKIE_ZHANG-张学友ANDY_LAU-刘德华  
    Aaron_Kwok-郭富城 ANDY_LAU-刘德华LIMING-黎明JACKIE_ZHANG-张学友  
    Aaron_Kwok-郭富城 JACKIE_ZHANG-张学友ANDY_LAU-刘德华LIMING-黎明  
    LIMING-黎明 ANDY_LAU-刘德华JACKIE_ZHANG-张学友Aaron_Kwok-郭富城  
    JACKIE_ZHANG-张学友 LIMING-黎明ANDY_LAU-刘德华Aaron_Kwok-郭富城  

 

 

解决办法:定义为JSONArray,代码如下:

 

    import com.alibaba.fastjson.JSONArray;  
      
    /** 
     * Created by wangzhenfei on 14-4-15. 
     */  
    public class FastJsonTest {  
        public static void main(String[] args){  
            String jsonStr = "[{\"JACKIE_ZHANG\":\"张学友\"},{\"ANDY_LAU\":\"刘德华\"},{\"LIMING\":\"黎明\"},{\"Aaron_Kwok\":\"郭富城\"}]" ;  
            //做5次测试  
            for(int i=0,j=5;i<j;i++)  
            {  
                JSONArray jsonArray = JSONArray.parseArray(jsonStr);  
      
               for(int k=0;k<jsonArray.size();k++){  
                   System.out.print(jsonArray.get(k) + "\t");  
               }  
                System.out.println();//用来换行  
            }  
        }  
    }  


运行结果为:

 

    {"JACKIE_ZHANG":"张学友"} {"ANDY_LAU":"刘德华"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}  
    {"JACKIE_ZHANG":"张学友"} {"ANDY_LAU":"刘德华"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}  
    {"JACKIE_ZHANG":"张学友"} {"ANDY_LAU":"刘德华"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}  
    {"JACKIE_ZHANG":"张学友"} {"ANDY_LAU":"刘德华"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}  
    {"JACKIE_ZHANG":"张学友"} {"ANDY_LAU":"刘德华"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}  

 

 

如果就想要定义为JSONObject,而不是JSONArray,可以选用其他JSON解析器,个人推荐使用google的gson,文档明显比fastjson好很多(从这里可以看出阿里巴巴和谷歌的差距):

 

    import com.google.gson.JsonElement;  
    import com.google.gson.JsonObject;  
    import com.google.gson.JsonParser;  
      
    /** 
     * Created by wangzhenfei on 14-4-15. 
     */  
    public class FastJsonTest {  
        public static void main(String[] args){  
            String jsonStr = "{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}" ;  
            //做5次测试  
            for(int i=0,j=5;i<j;i++)  
            {  
                JsonObject jsonObject = (JsonObject) new JsonParser().parse(jsonStr);  
                for(java.util.Map.Entry<String,JsonElement> entry:jsonObject.entrySet()){  
                    System.out.print(entry.getKey()+"-"+entry.getValue()+"\t");  
                }  
                System.out.println();//用来换行  
            }  
        }  
    }  


运行结果:

 

 

        JACKIE_ZHANG-"张学友"  ANDY_LAU-"刘德华"  LIMING-"黎明" Aaron_Kwok-"郭富城"      
        JACKIE_ZHANG-"张学友"  ANDY_LAU-"刘德华"  LIMING-"黎明" Aaron_Kwok-"郭富城"      
        JACKIE_ZHANG-"张学友"  ANDY_LAU-"刘德华"  LIMING-"黎明" Aaron_Kwok-"郭富城"      
        JACKIE_ZHANG-"张学友"  ANDY_LAU-"刘德华"  LIMING-"黎明" Aaron_Kwok-"郭富城"      
        JACKIE_ZHANG-"张学友"  ANDY_LAU-"刘德华"  LIMING-"黎明" Aaron_Kwok-"郭富城"      


0
0
分享到:
评论

相关推荐

    fastjson的一个小例子

    在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android应用开发中,JSON是一种常见的数据交换格式,用于在服务器和客户端之间传递数据。FastJson以...

    android 优化解析json例子

    本篇文章将深入探讨一个优化过的Android JSON解析例子,帮助开发者提升应用程序的效率。 首先,我们需要了解在Android中解析JSON的两种主要方法:`org.json`库和Gson库。`org.json`是Android SDK自带的库,适合简单...

    fastjson的各种用法例子

    **Fastjson:高效且强大的JSON库** Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它不仅支持JSON到Java对象的映射,还提供了方便的JSON字符串解析和生成功能。在Java开发中,Fastjson因其简单易用、性能优异...

    lotus domino 结合fastjson开发例子

    lotus domino 结合fastjson开发例子

    Android FastJSON小示例

    在这个例子中,我们使用`JSON.parseObject()`方法将JSON字符串解析成`JSONObject`对象,然后通过键值对获取对应的值。 同样,FastJSON也支持将Java对象转换为JSON字符串: ```java import ...

    fastJson依赖jar包

    在这个例子中,`Person`是一个JavaBean,它的属性与JSON字符串中的键对应。`parseObject()`方法将JSON字符串解析成了`Person`对象。 总的来说,"fastJson依赖jar包"是Java开发中不可或缺的工具之一,尤其在处理JSON...

    Json_Gson_FastJson解析

    在Java世界中,有多种库可以帮助我们解析和生成JSON,其中最常用的包括org.json、Google的Gson以及阿里巴巴的FastJson。下面我们将详细探讨这三种JSON解析库的使用方法。 1. **org.json**: org.json是一个开源的...

    fastjson基础

    FastJson 是阿里巴巴提供的一款高效、功能丰富的 Java 语言编写的 JSON 库。它不仅支持 JSON 数据的序列化(将 Java 对象转换成 JSON 字符串)和反序列化(将 JSON 字符串转换成 Java 对象),还提供了许多便利的...

    fastJSON文档

    为了演示FastJSON的基本使用,下面提供了一个简单的例子,涉及对象序列化和反序列化的实现。 ##### 示例代码 定义两个Java类`User`和`Group`: ```java public class User { private Long id; private String ...

    Gson和Fastjson 使用Demo

    以下是如何使用Fastjson进行序列化和反序列化的例子: 1. **序列化**: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; User user = new User(); // 设置属性... ...

    fastjson Json解析

    在这个例子中,`JSON.parseObject()`方法将JSON字符串解析成一个`Person`对象。 - **Java对象转换为JSON字符串**: ```java Person p = new Person(); p.setName("John"); p.setAge(30); String jsonString = JSON....

    fastjson使用详解.md

    - 以下是一个简单的 `Person` 类的例子,展示了如何使用 `@JSONField` 注解来自定义 JSON 输出: ```java public class Person { @JSONField(name = "AGE") private int age; @JSONField(name = "LASTNAME", ...

    gson fastjson

    在IT行业中,JSON...在GsonDemo这个例子中,可能包含了使用Gson库进行JSON解析的示例代码,通过分析和学习这段代码,可以深入理解Gson的使用方法,并与Fastjson进行性能对比,以便在实际项目中做出最佳选择。

    Fastjson解析案例

    通常,这个例子会展示如何将一个JSON字符串解析成一个Java对象,例如User类的实例。通过阅读并理解这个示例,开发者可以学习到如何在实际项目中使用Fastjson进行数据转换。 总结来说,Fastjson作为一个强大的JSON...

    springMVC整合FastJson实现RestFul风格API

    在这个例子中,`@GetMapping`、`@PostMapping`、`@PutMapping`和`@DeleteMapping`分别对应HTTP的GET、POST、PUT和DELETE方法。`@PathVariable`用于从URL路径中提取参数,而`@RequestBody`用于接收请求体中的JSON数据...

    Json解析案例json,fastjson,gson

    以下是一个使用`gson`的例子: ```java String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; // 创建Gson实例 Gson gson = new Gson(); // 反序列化 Person person = gson.fromJson...

    安卓网站交互JSONxmlWebserviceUPnP相关-json解析在android开发中是非常常见的fastjson是阿里巴巴的一个库对于json开发效率很高我写了一个简单例子.rar

    json解析在android开发中是非常,常见的fastjson是阿里巴巴的一个库,对于json开发效率很高,我写了一个简单例子.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    fastjson 示例

    在这个例子中,`Person` 类需要有对应的 getter 和 setter 方法以供 Fastjson 进行字段映射。 其次,Fastjson 支持 JSONPath,这是一个类似于XPath的查询语言,用于从 JSON 数据中提取值。例如,要获取上面 JSON ...

    fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

    import com.alibaba.fastjson.*; public class JSONEasy extends JspEasy { /*/构造对象 public JSONEasy() { super(); }*/ public JSONEasy(HttpServletRequest request,HttpServletResponse response) { ...

    详解Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象 JONSArray操作json数组 对象转json //创建学生对象 Student student=new Student(); student.setAge(23); student.setClazz(六年级);...

Global site tag (gtag.js) - Google Analytics