JSON数据格式:
JSON对象格式
{"key":"value","key":"value",....}
{
"username":"javk",
"password":"1234"
}
键和值使用冒号分隔,key必须使用双引号,value如果没有使用双引号表示变量
JSON数组
[obj,obj,obj,....]
['jack','rose','tom']
组合使用
[
{"id":"b001","title":"java","price":"998"},
{"id":"b002","title":"c++","price":"123"},
{"id":"b003","title":"PHP","price":"234"}
]
工具
(1)json-lib
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.google.gson.Gson;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
public class JsonDemo {
/**
* 以后在使用时 常使用 map javabean list
* json-lib 将java对象转换成 json数据
* 工具类分为两种
* JSONObject 处理 map javabean
* JSONArray 处理 list 或者 数组
*
* 以上两个工具类 提供一样api
* fromObject 处理对象
* toString 将最后的数据转换成string格式
*
*/
@Test
public void demo1(){
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
//["a","b","c"]
String jsonStr = JSONArray.fromObject(list).toString();
System.out.println(jsonStr);
}
@Test
public void demo2(){
Map<String,String> map = new HashMap<String,String>();
map.put("a", "xxx");
map.put("b", "yyy");
map.put("c", "zzz");
String jsonStr = JSONObject.fromObject(map).toString();
System.out.println(jsonStr);
}
@Test
public void demo3(){
Category category = new Category("c001", "wang");
String jsonStr = JSONObject.fromObject(category).toString();
System.out.println(jsonStr);
}
@Test
public void demo4(){
List<Category> list = new ArrayList<Category>();
list.add( new Category("c001", "wang"));
list.add( new Category("c002", "lisi"));
list.add( new Category("c003", "zhang"));
String jsonStr = JSONArray.fromObject(list).toString();
System.out.println(jsonStr);
}
@Test
public void demo5(){
Category category = new Category("c001", "wang");
//删除不想要的数据
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"cname","cid"});
String jsonStr = JSONObject.fromObject(category, config).toString();
System.out.println(jsonStr);
}
@Test
public void demo6(){
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
//["a","b","c"]
Gson gson = new Gson();
String jsonStr = gson.toJson(list);
System.out.println(jsonStr);
}
@Test
public void demo7(){
Map<String,String> map = new HashMap<String,String>();
map.put("a", "xxx");
map.put("b", "yyy");
map.put("c", "zzz");
Gson gson = new Gson();
// Json-lib 处理对象里面日期格式会有问题
// Gson没有
String jsonStr = gson.toJson(map);
System.out.println(jsonStr);
}
}