fastJSON求指教

ls99887 2017-11-19 04:05:08
怎么拿出下面数组里面所有的Matched:在线等,急急急
"messageList": [
{
"matched": "编号",
"advice": "建议"
},
{
"01Matched": "12",
"01Advice": "你好"
},
{
"02Matched": "12",
"02Advice": "你好",
"03Matched": "13",
"03Advice": "你也好",
"04Matched": "14",
"04Advice": "他也好",
}
{

"04Matched": "14",
"04Advice": "他也好",
}
...全文
176 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱写Bug的麦洛 2017-11-21
  • 打赏
  • 举报
回复
同学你好: 首先你提供的json数据格式有问题,你可以用json在线解析就可以查看到哪里有问题: 我重新整理了一下,数据格式为
{"messageList": [
        {
            "matched": "编号",
            "advice": "建议"
        },
        {
            "01Matched": "12",
            "01Advice": "你好"
        },
        {
            "02Matched": "12",
            "02Advice": "你好",
 	    "03Matched": "13",
            "03Advice": "你也好",
            "04Matched": "14",
            "04Advice": "他也好"
        },
        {

            "04Matched": "14",
            "04Advice": "他也好"
        }
	]
	}
============================================================= 套用前几天看到贴吧大神的代码,简单的实现了一下;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.StringWriter;

import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


public class JsonTest1 {
	
	private static final Logger logger = Logger.getLogger(JsonTest1.class);
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		logger.info("json方法测试开始");
		try {

			String file = null;
			// 把json数据先放到4.txt文件中,然后通过创建缓冲读入文件流拿到4.txt文件数据
			FileReader fileReader = new FileReader(new File("I:\\WorkSpace\\javapracticing\\java_practicing\\src\\com\\xwtech\\json\\4.txt"));
			BufferedReader br = new BufferedReader(fileReader);
		
			// 字符串生成器,存放从4.txt取到的数据,以便接下来用于jsonObject对象的接收
			StringWriter sw = new StringWriter();

			// 从读入流到字符串写出流的数据传输
			String s;
			while ((s = br.readLine()) != null) {
				sw.append(s);
			}
			br.close();
			
			// 通过控制台查看结果来测试是否写出成功
			//System.out.println(sw.toString());
			
			//System.out.println(targetString);

			// 创建JsonObject对象,以便对json数据进行处理之后取自己想要的值
			
             JSONObject jsonObject = new JSONObject();
             JSONObject parseObject = JSON.parseObject(sw.toString());
          
			// 新建一个字符串生成器,用于存放整理之后的数据,方便最后在控制台做输出测试
			StringBuilder sb = new StringBuilder();

            //把json数据一个一个拿到并赋给一个一个相应对象
			//获取数组
			JSONArray messageList = parseObject.getJSONArray("messageList");
			//获取数组中第一个值 {"matched": "编号","advice": "建议"}
			JSONObject jsonObject2 = messageList.getJSONObject(0);
			//获取matched对应的值
			String matched = jsonObject2.getString("matched");
			
            //把拿到的一个又一个json值存放到字符串生成器sb中,以便之后用其输出测试
			sb.append("messageList:==="+messageList+"\n");
			sb.append("jsonObject2:==="+jsonObject2+"\n");
			sb.append("matched:==="+matched+"\n");
            //输出字符串生成器 sb,查看所取数据是否是想要数据
			System.out.println(sb.toString());
			logger.info("json方法结束");

		} catch (Exception e) {
			logger.error("出错了", e);
		}
	}
}
========================================= 测试结果:
- json方法测试开始
messageList:===[{"advice":"建议","matched":"编号"},{"01Advice":"你好","01Matched":"12"},{"02Advice":"你好","02Matched":"12","03Advice":"你也好","03Matched":"13","04Advice":"他也好","04Matched":"14"},{"04Advice":"他也好","04Matched":"14"}]
jsonObject2:==={"advice":"建议","matched":"编号"}
matched:===编号

- json方法结束
爱写Bug的麦洛 2017-11-21
  • 打赏
  • 举报
回复
 {
            "matched": "编号",
            "advice": "建议"
        },
你是要取出这个吗? JsonArray.getObject("matched")

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧