51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1496|回复: 2
打印 上一主题 下一主题

【分享】java与json串的基本操作处理脚本示例

[复制链接]
  • TA的每日心情
    奋斗
    2016-7-23 14:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2016-7-23 13:58:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    pom文件中的maven坐标
        <dependency>
          <groupId>net.sf.json-lib</groupId>
          <artifactId>json-lib</artifactId>
          <version>2.4</version>
        </dependency>

    java代码示例:
    package Study;

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import java.util.HashMap;
    import java.util.Map;
    import org.junit.Test;

    /**
    * Created by songwenjun on 2016/7/21.
    */
    public class JsonOperate {

    //基本的JSONArray与JSONObject操作
        @Test
        public void JsonObjectAndJsonArray() {
            JSONObject jsonObj = new JSONObject();
            jsonObj.put("name", "zhangsan");
            jsonObj.put("sex", "female");
            System.out.println("jsonObj: " + jsonObj);      //输出为:{"name":"zhangsan","sex":"female"}

            JSONArray jsonArray = new JSONArray();
            jsonArray.add("11");
            jsonArray.add("22");
            jsonArray.add("33");
            System.out.println("jsonArray:" + jsonArray);    //输出为:["11","22","33"]
        }

    //由java自带的数据结构转换为JSON文本
        @Test
        public void JavaDataTypetoJSON() {
            //可以由数组,列表等生成JSONArray
            String list[] = {"11","22"};
            JSONArray jsonArray = JSONArray.fromObject(list);
            jsonArray.add("33");
            System.out.println("jsonArray: " + jsonArray);    //输出为:["11","22","33"]

            //可以由Map生成JSONObject
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("NO1", "第一个");
            map.put("NO2", "第二个");
            map.put("NO3", jsonArray);
            JSONObject jsonObj  = JSONObject.fromObject(map);
            System.out.println("jsonObj: " + jsonObj);    //输出为:{"NO3":["11","22","33"],"NO2":"第二个","NO1":"第一个"}

    //        JSONArray jsonArray2 = jsonObj.getJSONArray("NO3");   // 根据Key=NO3,获取["11","22","33"]
    //        System.out.println("GET jsonObj jsonArray2: " + jsonArray2);

        }

        //读取JSON文本
        @Test
        public void getJSONValue() {
            JSONArray jsonArray;
            JSONObject jsonObj;
            //读取JSONArray,用下标索引获取(从0开始)
            String array = "[\"11\",\"22\",\"33\"]";
            System.out.println("String array = " + array);
            jsonArray = JSONArray.fromObject(array);
            System.out.println("jsonArray.getString(1) = " + jsonArray.getString(1));    //输出为:22

            //读取JSONObject
            String object = "{\"NO1\":[\"44\",\"55\",\"66\"],\"NO2\":{\"NO1\":\"第一个\"}}";
            System.out.println("String object = " + object);
            jsonObj = JSONObject.fromObject(object);
            System.out.println("jsonObj.get(\"NO1\")" + jsonObj.get("NO1"));    //输出为:["44","55","66"]

            jsonArray = (JSONArray) (jsonObj.get("NO1"));
            System.out.println("jsonArray.getString(1) = " + jsonArray.getString(1));    //输出为:55

            //用"键"获取值
            jsonObj = (JSONObject) jsonObj.get("NO2");
            System.out.println("jsonObj = " + jsonObj);    //输出为:{"NO1":"第一个"}
        }
       
    }
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-27 15:56
  • 签到天数: 322 天

    连续签到: 1 天

    [LV.8]测试军长

    3#
    发表于 2016-7-25 09:52:22 | 只看该作者
    好东西。。。支持一个
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 16:36 , Processed in 0.074159 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表