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-"郭富城"
分享到:
相关推荐
在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android应用开发中,JSON是一种常见的数据交换格式,用于在服务器和客户端之间传递数据。FastJson以...
本篇文章将深入探讨一个优化过的Android JSON解析例子,帮助开发者提升应用程序的效率。 首先,我们需要了解在Android中解析JSON的两种主要方法:`org.json`库和Gson库。`org.json`是Android SDK自带的库,适合简单...
**Fastjson:高效且强大的JSON库** Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它不仅支持JSON到Java对象的映射,还提供了方便的JSON字符串解析和生成功能。在Java开发中,Fastjson因其简单易用、性能优异...
lotus domino 结合fastjson开发例子
在这个例子中,我们使用`JSON.parseObject()`方法将JSON字符串解析成`JSONObject`对象,然后通过键值对获取对应的值。 同样,FastJSON也支持将Java对象转换为JSON字符串: ```java import ...
在这个例子中,`Person`是一个JavaBean,它的属性与JSON字符串中的键对应。`parseObject()`方法将JSON字符串解析成了`Person`对象。 总的来说,"fastJson依赖jar包"是Java开发中不可或缺的工具之一,尤其在处理JSON...
在Java世界中,有多种库可以帮助我们解析和生成JSON,其中最常用的包括org.json、Google的Gson以及阿里巴巴的FastJson。下面我们将详细探讨这三种JSON解析库的使用方法。 1. **org.json**: org.json是一个开源的...
FastJson 是阿里巴巴提供的一款高效、功能丰富的 Java 语言编写的 JSON 库。它不仅支持 JSON 数据的序列化(将 Java 对象转换成 JSON 字符串)和反序列化(将 JSON 字符串转换成 Java 对象),还提供了许多便利的...
为了演示FastJSON的基本使用,下面提供了一个简单的例子,涉及对象序列化和反序列化的实现。 ##### 示例代码 定义两个Java类`User`和`Group`: ```java public class User { private Long id; private String ...
以下是如何使用Fastjson进行序列化和反序列化的例子: 1. **序列化**: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; User user = new User(); // 设置属性... ...
在这个例子中,`JSON.parseObject()`方法将JSON字符串解析成一个`Person`对象。 - **Java对象转换为JSON字符串**: ```java Person p = new Person(); p.setName("John"); p.setAge(30); String jsonString = JSON....
- 以下是一个简单的 `Person` 类的例子,展示了如何使用 `@JSONField` 注解来自定义 JSON 输出: ```java public class Person { @JSONField(name = "AGE") private int age; @JSONField(name = "LASTNAME", ...
在IT行业中,JSON...在GsonDemo这个例子中,可能包含了使用Gson库进行JSON解析的示例代码,通过分析和学习这段代码,可以深入理解Gson的使用方法,并与Fastjson进行性能对比,以便在实际项目中做出最佳选择。
通常,这个例子会展示如何将一个JSON字符串解析成一个Java对象,例如User类的实例。通过阅读并理解这个示例,开发者可以学习到如何在实际项目中使用Fastjson进行数据转换。 总结来说,Fastjson作为一个强大的JSON...
在这个例子中,`@GetMapping`、`@PostMapping`、`@PutMapping`和`@DeleteMapping`分别对应HTTP的GET、POST、PUT和DELETE方法。`@PathVariable`用于从URL路径中提取参数,而`@RequestBody`用于接收请求体中的JSON数据...
以下是一个使用`gson`的例子: ```java String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; // 创建Gson实例 Gson gson = new Gson(); // 反序列化 Person person = gson.fromJson...
json解析在android开发中是非常,常见的fastjson是阿里巴巴的一个库,对于json开发效率很高,我写了一个简单例子.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
在这个例子中,`Person` 类需要有对应的 getter 和 setter 方法以供 Fastjson 进行字段映射。 其次,Fastjson 支持 JSONPath,这是一个类似于XPath的查询语言,用于从 JSON 数据中提取值。例如,要获取上面 JSON ...
import com.alibaba.fastjson.*; public class JSONEasy extends JspEasy { /*/构造对象 public JSONEasy() { super(); }*/ public JSONEasy(HttpServletRequest request,HttpServletResponse response) { ...
android原生操作json数据 主要是两个类 JSONObject 操作对象 JONSArray操作json数组 对象转json //创建学生对象 Student student=new Student(); student.setAge(23); student.setClazz(六年级);...