JAVA------JSON:
對應的JSON包導入對應的項目文件:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* JavaBean,List,Map轉成json格式
* @author allen
*
*/
public class JSON2 {
public static void main(String[] args){
User user = new User();
user.setName("cxl");
user.setPassword("1234");
JSONArray jsonArray = JSONArray.fromObject(user); //數組:轉化爲JSON格式:[{"name":"cxl","password":"1234"}]
JSONObject jsonObject = JSONObject.fromObject(user);//對象:轉化爲JSON格式:{"name":"cxl","password":"1234"}
System.out.println("JSON-Array:"+jsonArray);
System.out.println("JSON-Object:"+jsonObject);
//List集合轉爲JSONArray格式
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setName("cxl");
user1.setPassword("1234");
User u = new User();
u.setName("lhl");
u.setPassword("1234");
users.add(user);
users.add(u);
JSONArray jsonsArrayList = JSONArray.fromObject(users);
System.out.println("jsons-Array-List:"+jsonsArrayList);
//LIST集合轉化爲JSONObject
JSONObject jsonObjList = new JSONObject();
jsonObjList.put("users", users);
jsonObjList.put("u", u);
System.out.println("json-Object-List"+jsonObjList);
//MAP
Map<String,Object> map = new HashMap<String,Object>();
map.put("users", users);
map.put("u", u);
//JSONArray
JSONArray jsonMapArray = JSONArray.fromObject(map);
System.out.println("JSON-ARRAY-MAP:"+jsonMapArray);
//JSONObject
JSONObject jsonMapObject = JSONObject.fromObject(map);
System.out.println("JSON-Object-Map:"+jsonMapObject);
}
}
對應的結果:
JSON-Array:[{"name":"cxl","password":"1234"}]
JSON-Object:{"name":"cxl","password":"1234"}
jsons-Array-List:[{"name":"cxl","password":"1234"},{"name":"lhl","password":"1234"}]
json-Object-List{"users":[{"name":"cxl","password":"1234"},{"name":"lhl","password":"1234"}],"u":{"name":"lhl","password":"1234"}}
JSON-ARRAY-MAP:[{"u":{"name":"lhl","password":"1234"},"users":[{"name":"cxl","password":"1234"},{"name":"lhl","password":"1234"}]}]
JSON-Object-Map:{"u":{"name":"lhl","password":"1234"},"users":[{"name":"cxl","password":"1234"},{"name":"lhl","password":"1234"}]}
JSON ---轉爲對應JAVA格式;
@Test
public void testJsonArray(){
String jsonArray = "[{'name':'cxl','password':'1234'}]";
JSONArray jsonArray1 = JSONArray.fromObject(jsonArray);
//數組裏面存儲的是User對象
for (int i = 0; i < jsonArray1.size(); i++) {
JSONObject object = (JSONObject) jsonArray1.get(i);
User user = (User)JSONObject.toBean(object,User.class);
System.out.println(user.getName()+" "+user.getPassword());
}
}
@Test
public void testJsonObject(){
String jsonObject = "{name:'cxl',password:'1234'}";
JSONObject jsonObject1 = JSONObject.fromObject(jsonObject);
User user = (User) JSONObject.toBean(jsonObject1, User.class);
System.out.println(user.getName()+" "+user.getPassword());
}
@Test
public void testJsonArrayList(){
String jsonArrayList = "[{name:'cxl',password:1234},{name:'lhl',password:'1234'}]";
JSONArray arrays = JSONArray.fromObject(jsonArrayList);
List<User> users = new ArrayList<User>();
for (int i = 0; i < arrays.size(); i++) {
JSONObject object = (JSONObject) arrays.get(i);
User user = (User)JSONObject.toBean(object,User.class);
users.add(user);
}
for(int i= 0;i<users.size();i++){
User user = users.get(i);
System.out.println(user.getName());
}
}
@Test
public void testJsonObjectList(){
String jsonObjectList = "{users:[{name:'cxl',password:'1234'},{name:'lhl',password:'1234'}]}";
JSONObject jsonObject = JSONObject.fromObject(jsonObjectList);
List<User> users = new ArrayList<User>();
for(Iterator it = jsonObject.keys();it.hasNext();){
String key = (String) it.next();
JSONArray jsonArray = jsonObject.getJSONArray(key);
if(jsonArray.isArray()){
for(int i = 0;i < jsonArray.size();i++){
JSONObject jsonObject1 = (JSONObject) jsonArray.get(i);
User user = (User) JSONObject.toBean(jsonObject1,User.class);
users.add(user);
}
}
}
for(int i= 0;i<users.size();i++){
User user = users.get(i);
System.out.println(user.getName());
}
}
轉MAP的處理方法:
public static Map<String,Object> parseJSON2Map(String jsonStr){
ListOrderedMap map = new ListOrderedMap();
JSONObject json = JSONObject.fromObject(jsonStr);
for(Object k : json.keySet()){
Object v = json.get(k);
if(v instanceof JSONArray){
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Iterator<JSONObject> it = ((JSONArray)v).iterator();
while(it.hasNext()){
JSONObject json2 = it.next();
list.add(parseJSON2Map(json2.toString()));
}
map.put(k.toString(),list);
}else{
map.put(k.toString(), v);
}
}
return map;
}