数据传输---json
{键:值} {"firstName":"Bill" , "lastName":"Gates"} 标准板式 值是一个数组的json: 外层键是employees,值是数组。数组里面又是json {"employees": [{ "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] } json的官网 www.json.org 常用的是google-gson版本的。包名是 gson-2.2.4.jar 解析json JsonParser jp = new JsonParser(); //创建json解析器 JsonObject object = (JsonObject) jp.parse(new FileReader("test.json"));//读取文件中数据转为jsonObject对象 System.out.println("查出来的是:"+object.get("liu").getAsString());//在jsonObject对象中根据键获取值,第一个get获取到的是jsonElement。第二个get把它转换为string System.out.println("查出来的是:"+object.get("bools").getAsBoolean());//获取布尔 JsonArray array = object.get("employees").getAsJsonArray();//获取转换为json数组 for(int i=0;i<array.size();i++){//因为employees值是数组,数组中又是json对象。遍历数组 System.out.println("----"); JsonObject subobject = array.get(i).getAsJsonObject();//获得数组中的第一个元素,并将转为jsonObjec对象 System.out.println(subobject.get("firstName").getAsString());//同上根据键获取jsonObjec对应的值 System.out.println(subobject.get("lastName").getAsString()); } 生成json JsonObject jo = new JsonObject(); //创建JsonObject对象 //jo.add(property, value); //是在jo中添加一个JsonObject才用 jo.addProperty("cat", "it");//在jo对象中添加一个普通的键值对 JsonArray array = new JsonArray(); //创建一个JsonArray数组对象 JsonObject lan1 = new JsonObject(); //创建JsonObject对象lan1 lan1.addProperty("id", 1); lan1.addProperty("name", "java"); lan1.addProperty("ide", "Eclipse"); array.add(lan1); //把lan1对象添加到array数组中 JsonObject lan2 = new JsonObject(); //创建JsonObject对象lan2 lan2.addProperty("id", 2); lan2.addProperty("name", "swift"); lan2.addProperty("ide", "xcode"); array.add(lan2); //把lan2对象添加到array数组中 jo.add("langs", array);//把array数组添加到jo对象中,array是一个json所以用add jo.addProperty("bool", true);//在jo对象中添加一个普通的键值对 JsonObject lan3 = new JsonObject(); //创建JsonObject对象lan3 lan3.addProperty("id", 3); lan3.addProperty("name", "c#"); lan3.addProperty("ide", "visual studio"); jo.add("lan3", lan3); //同上lan3是一个json对象所以用add添加 System.out.println(jo.toString());//将json对象转换为字符串。可以直接拷贝控制台输出的结果到文本中,也可这样直接传输 阿里巴巴的json。Jar import com.alibaba.fastjson.JSON; public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。 来自 <http://blog.csdn.net/glarystar/article/details/6654494> 经典的: String sss = postMaiDian(time1, time2, page, pageDat); //获得一个json字符串 net.sf.json.JSONArray arry = net.sf.json.JSONArray.fromObject(sss); System.out.println("json字符串内容如下"); System.out.println(arry); List<Map<String, String>> rsList = new ArrayList<Map<String, String>>(); for (int i = 0; i < arry.size(); i++) { JSONObject jsonObject = arry.getJSONObject(i); Map<String, String> map = new HashMap<String, String>(); for (Iterator<?> iter = jsonObject.keys(); iter.hasNext();) { String key = (String) iter.next(); String value = jsonObject.get(key).toString(); map.put(key, value); } rsList.add(map); } System.out.println(rsList.toString());