跳至主要內容

FastJsonWrap组件

大约 2 分钟

FastJsonWrap组件

介绍

FastChar核心组件,主要用于快速读写JSON字符的内容,无需进行类型转换操作,类似 javascript 操作JSON对象一样方便快捷。

使用

开发者调用FastChar提供的静态方法 FastChar.getJsonWrap() 获得 FastJsonWrap 对象后,即可操作json字符串内容。

注意

json字符的内容操作涉及到json的转换,所以必须使用 Json组件

获取json的一级属性值

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}}}";
    String code = FastChar.getJsonWrap(jsonStr).getString("code");
    System.out.println(code);
}

获取json的多级属性值

支持 ${attr.attr.attr} 表达式,获取深层次的对象属性值!也可省略 ${} 格式!

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}}}";
    
    int userId = FastChar.getJsonWrap(jsonStr).getInt("${user.userId}");
    System.out.println(userId);
    
    int deptId = FastChar.getJsonWrap(jsonStr).getInt("user.dept.deptId");
    System.out.println(deptId);
}

获取json的数组内容

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}},'values':[1,2,3,4]}";
    int anInt = FastChar.getJsonWrap(jsonStr).getInt("values[0]");//取values数组中的第一个内容
    System.out.println(anInt);
}

遍历json的数组内容

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}},'values':[1,2,3,4]}";
    
    //获取数组的长度,语法与 javascript 类似
    int length = FastChar.getJsonWrap(jsonStr).getInt("values.length");
    for (int i = 0; i < length; i++) {
        
        //遍历下标取值
        int anInt = FastChar.getJsonWrap(jsonStr).getInt("values[" + i + "]");
        System.out.println(anInt);
    }
}

修改json属性内容

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}},'values':[1,2,3,4]}";

    FastJsonWrap jsonWrap = FastChar.getJsonWrap(jsonStr);

    jsonWrap.getEditor("code")//修改一级属性值
            .setValue("111111");
    
    jsonWrap.getEditor("user.userId")//修改多级属性值
            .setValue("2");

    jsonWrap.getEditor("user.dept.deptId")//修改多级属性值
            .setValue("3");
            
    //获取修改后的json字符串
    System.out.println(jsonWrap.toJson());
}

增加json属性

public static void main(String[] args) {
    String jsonStr = "{'code':'123456','user':{'userId':1,'dept':{'deptId':1}},'values':[1,2,3,4]}";

    Map<String, Object> moreAttr = new HashMap<String, Object>();
    moreAttr.put("name", "用户");
    moreAttr.put("role", 0);

    FastJsonWrap jsonWrap = FastChar.getJsonWrap(jsonStr);

    jsonWrap.getEditor("values")
            .addValue(moreAttr);

    jsonWrap.getEditor("user.dept")
        .addValue("deptName", "部门名称");
                
    //获取修改后的json字符串
    System.out.println(jsonWrap.toJson());
}