我有一串json数据[{bh":"001","name":"小花猫"}] ,我该如何提前它们bh的值和name的数值呢?以此类推 [{"sex":"女","age":18,"bh":"001","name":"小花猫"}]我想得到bh = ?
        name = ?
        sex = ?
        age = ?java中如何提前json数据属性值呢 , 不可以使用javascript

解决方案 »

  1.   

    不是排序, 只要提取bh , sex ,name ,age的数值
      

  2.   

    不是有一个json的jar包嘛,用里面的方法就好了
      

  3.   

    能否详细点我只会生成JSON, 不会提取JSON里面的数据
      

  4.   

    将你的字符串转为JSONObject,代码大致如下JSONObject jsonObject = new JSONObject(jb.toString());剩下的自己去看api
      

  5.   

    看了一下 json-lib-1.1-jdk15.jar已经不推荐用上面的方法了 这样好点JSONObject jsonObject = JSONObject.fromString("");
    jsonObject.get("");
      

  6.   

    没有看见有JSONObject.fromString
    只有JSONObject.fromObjectString jsonData="[{\"sex\":\"女\",\"age\":18,\"bh\":\"001\",\"name\":\"小花猫\"}]"
    JSONObject jsonObject = JSONObject.fromObject(jsonData);
    System.out.println("bh:" +jsonObject.get("bh"));  这样写提取不到
      

  7.   

    你这样不报错吗,你的根本不是一个完整的json数据结构,你这个应该是一个数组吧,具体操作如下:
    String jsonData = "{\"array\":[{\"sex\":\"女\",\"age\":\"18\",\"bh\":\"001\",\"name\":\"小花猫\"}]}";
    JSONObject jsonObject = JSONObject.fromObject(jsonData);
    JSONArray jsonArray = JSONArray.fromObject(jsonObject.get("array"));
    System.out.println(JSONObject.fromObject(jsonArray.get(0)).getString("name"));
      

  8.   

    这样吧,上面写得有点冗余 String jsonData = "[{\"sex\":\"女\",\"age\":\"18\",\"bh\":\"001\",\"name\":\"小花猫\"}]";
    JSONArray jsonArray = JSONArray.fromString(jsonData);
    for(Object obj : jsonArray.toArray()) {
    System.out.println(JSONObject.fromObject(obj).getString("name"));
    }