java解析json数据成数组

用java怎么把这样的json数据解析成数组?json数据的格式如下:[{"a":"111","b":"222","c":"333"},{"a":"1000","b":"... 用java怎么把这样的json数据解析成数组?
json数据的格式如下:
[{"a":"111","b":"222","c":"333"},{"a":"1000","b":"2000","c":"000"},{"a":"999","b":"300","c":"700"}]
我希望把a对应的数据全部放到一个数组中,把b对应的数据放到一个数组中,把c对应的数据放到一个数组中,有没有高手会的,求助…………
展开
 我来答
niceslj
2013-06-27 · TA获得超过184个赞
知道答主
回答量:95
采纳率:0%
帮助的人:55.8万
展开全部
String arr = "[{\"a\":\"111\",\"b\":\"222\",\"c\":\"333\"},{\"a\":\"1000\",\"b\":\"2000\",\"c\":\"000\"},{\"a\":\"999\",\"b\":\"300\",\"c\":\"700\"}]";
List<String> aList = new ArrayList<String>();
List<String> bList = new ArrayList<String>();
List<String> cList = new ArrayList<String>();
JSONArray jsa = JSONArray.fromObject(arr);
for(Object obj : jsa){
JSONObject jso = JSONObject.fromObject(obj);
aList.add( jso.get("a").toString() );
bList.add( jso.get("b").toString() );
cList.add( jso.get("c").toString() );
}
for(int i=0;i<aList.size();i++){
if(i==0)  
System.out.print("a:");
System.out.print(aList.get(i)+" ");
}
for(int i=0;i<bList.size();i++){
if(i==0)  
System.out.print("b:");
System.out.print(bList.get(i)+" ");
}
for(int i=0;i<cList.size();i++){
if(i==0) 
System.out.print("c:");
System.out.print(cList.get(i)+" ");
}
追问
不好意思啊,你的代码也是正确的,本来想给你的,结果点错了,给个赞
charlycong
2013-06-27 · TA获得超过445个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:292万
展开全部
import net.sf.json.JSONArray;


public class TestJson 
{
public static void main(String []args)
{
   String json = "[{\"a\":\"111\",\"b\":\"222\",\"c\":\"333\"},{\"a\":\"1000\",\"b\":\"2000\",\"c\":\"000\"},{\"a\":\"999\",\"b\":\"300\",\"c\":\"700\"}]";
    JSONArray jsonArr = JSONArray.fromObject(json);
    String a[] = new String[jsonArr.size()];
    String b[] = new String[jsonArr.size()];
    String c[] = new String[jsonArr.size()];
    for (int i = 0; i < jsonArr.size(); i++) {
    a[i] = jsonArr.getJSONObject(i).getString("a");
    b[i] = jsonArr.getJSONObject(i).getString("b");
    c[i] = jsonArr.getJSONObject(i).getString("c");
}
   
    for (int i = 0; i < c.length; i++) {
System.out.print(a[i]+" ");
System.out.print(b[i]+" ");
System.out.print(c[i]);
System.out.println();
}
     }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingqianqian2
2013-06-27 · 超过15用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:37.7万
展开全部
JacksonUtils.mapperObject("[" + JacksonUtils.mapperJSON(JacksonUtils
.mapperObject(
"{\"id\":1004"}}",
xx.class)) + "]", new TypeReference<List<InspectionClient>>() {
})
追问
请问这个有全的代码么?在我这里有好多错呀,需要导包么
追答
嗯,需要导入json_simple-1.1.jar,public static  T mapperObject(String content, Class clazz) {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(content, clazz);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}-------public static String mapperJSON(Object value) {
try {
return new String(mapperJsonBytes(value), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}----public static T mapperObject(String content, TypeReference typeRef) {
ObjectMapper mapper = new ObjectMapper();
//mapper.enableDefaultTyping();
try {
return mapper.readValue(content, typeRef);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e4b4556
2013-06-27
知道答主
回答量:41
采纳率:0%
帮助的人:20.1万
展开全部
可以把json返回来的内容放在一个StringBuffer 然后通过拆分,重新组合成你想要的数组格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-06-27 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2896万
展开全部
这个有现成的jar包啊。
有很多种,你百度搜索java json jar包。
追问
我也知道,可是我现在没实现我要的这个东西,只是实现了把大括号取出来
追答

这个不用什么实现吧。


import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
JSONArray ja;
ja = new JSONArray(feeItem);feeItem 是json结构的字符串
for(int i=0;i<ja.length();i++){
JSONObject iObj=ja.getJSONObject(i);
String feeTypeId=iObj.getString(" ");
String fee=iObj.getString(" ");
 
}

jar包用的是jettison-1.0-RC2.jar

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式