您的位置:首页 > 移动开发 > Objective-C

Java用JSONObject-lib来解析json串

2014-09-25 12:40 363 查看
直接贴代码:(所需jar包:json-lib.jar,可能会关联一些其它的jar包,请自行搜索.)

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonParser {

@SuppressWarnings("rawtypes")
public void test() {
Map m = this.testJson("jsonString");
System.out.println(((Map) ((List) m.get("test")).get(0)).get("test_title"));
}

@SuppressWarnings({ "rawtypes", "unchecked" })
public Map testJson(String str) {
JSONObject json = JSONObject.fromObject(str);
Iterator<?> it = json.keySet().iterator();
Map map = new HashMap();
while (it.hasNext()) {
String key = (String) it.next();
String value = json.getString(key);
if (this.isString(value)) {
map.put(key, value);
}
if (this.isJson(value)) {
map.put(key, this.testJson(value));
}
if (this.isJsonArray(value)) {
map.put(key, this.testJsonArray(value));
}

}
return map;
}

@SuppressWarnings({ "unchecked", "rawtypes" })
public List testJsonArray(String str) {
JSONArray jsonArr = JSONArray.fromObject(str);
List list = new ArrayList();
for (Object json : jsonArr) {
String jsonStr = json.toString();
    if(this.isString(jsonStr)){
    list.add(jsonStr);
    }
    if(this.isJson(jsonStr)){
    list.add(this.testJson(jsonStr.toString()));
    }
    if(this.isJsonArray(jsonStr)){
    list.add(this.testJsonArray(jsonStr.toString()));
    }
}
return list;
}

public boolean isJson(String s) {
boolean flag = true;
try {
JSONObject.fromObject(s);
} catch (Exception e) {
flag = false;
}
return flag;
}

public boolean isJsonArray(String s) {
boolean flag = true;
try {
JSONArray.fromObject(s);
} catch (Exception e) {
flag = false;
}
return flag;
}

public boolean isString(String s) {
return !this.isJson(s) && !this.isJsonArray(s);
}

public static void main(String[] args) {
JsonParser tj = new JsonParser();
tj.test();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐