java常用json解析数据方法

这篇博客介绍了Java中解析JSON数据的方法,特别是在日常开发中如何获取JSON对象的特定值。文章提到了将JSON数据转化为List或String的形式,并讨论了在特定场景下将JSON转换为XML的原因,例如在实现表单导入导出功能时。转换代码中使用了Java的JAXB工具类进行XML的生成。

java常用json解析数据方法

在日常开发中,常用的java 解析json数据笔记

 {
  id: "12e3232r34r334t34t3",
 code: "FieldColumn",
 fieldType: "FieldColumn",
 propertiesList: [
 {
code: "PropName",
value: "791b025ac3a116a12e86a42e0f558f0c",
widget: "FieldSubTable",
 },
code: "PropTableName",
 value: "tableHead2"
 },
{
code: "PropType", 
type: "text",
 value: "", attr: ""
},
{
code: "PropReadOnly", 
value: false,
cal: ""
},
{
code: "PropBT", 
value: false
},
{
code: "PropSubTableId",
 index: 2,
 value: "d8be1d4dffcf7944ee5a7bfc7dc0f789"
}
 ]
 }
​

类似这种结构的json数据,我们具体想拿到它的一部分值,我们该如何操作呢?

首先,我们从数据可以看出这是一个{[{},{},{},{},{}......]}的数据集合,它里面的数据分别是的形式

code: "PropSubTableId",
​
 index: 2,
​
 value: "d8be1d4dffcf7944ee5a7bfc7dc0f789"

所以我们可以把这个json数据集合转变为一个list<>的形式接收一下,也可以把它同化为一个string的字符串;具体代码如下:

//使用这两个注解是为了将我传的值方便其他功能引用
@Data
@XmlRootElement 
//这个解释代码类PropSubColumn继承了BaseProperty类
public class PropSubColumn extends BaseProperty {
    //我需要往xml里传值,所以定义了id,parentCode,propBT...等私有参数;方便传值
    private String id;
    private String parentCode;
    private Boolean propBT;
    private String tableName;
    private String tableLabel;
    private Boolean show;
    private String propWidth;
    private PropType propType;
    private PropReadOnly propReadOnly;
    private PropSubTableId propSubTableId;
    //下面方法是处理传过来的jsonObject数据
public static PropSubColumn format(JSONObject property) {
        PropSubColumn propSubColumn = new PropSubColumn();
    //因为传过来的数据是key,value形式的json字符串,所以可直接传值
        propSubColumn.setId(property.getString("id"));
        propSubColumn.setParentCode((String) property.get("parentCode"));
    //但是这个json字符串里还有一个[{},{}...]json数组,所以先使用字符串接收一下
        String propertiesList = property.get("propertiesList").toString();
        String tableName = "";
        String tableLabel = "";
        Boolean isShow = true;
        String propWidth = "";
        Boolean propBT = false; 
    //需要判断数据是否为空,如果传过来的数组不为空,执行下面for循环,获取数据然后传值
if (StringUtilExt.isNotEmpty(propertiesList)) {
    //我们现在需要先把String类型的字符串,转为list<Map&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值