利用Java bean类处理复杂json串

12 篇文章 0 订阅
2 篇文章 0 订阅

利用Java bean类处理复杂json串

最近在做一个项目时,需要用Java去处理json串,需要处理的json比较复杂,但是用这种方法,就很简单。直接说用法。
处理的json串形式如下:

{
    "name":"test",
    "url":"http://www.bejson.com",
    "page":88,
    "isNonProfit":true,
    "input":{
        "inputval":"1",
        "inputvalue":"2"
    },
    "output":{
        "R":"0",
        "R1":"0"
    },
    "opations":[
        {
            "symbol":"=",
            "inputparameters":{
                "p1":"inputval"
            },
            "outparameters":{
                "P1":"R"
            }
        },
        {
            "symbol":"+",
            "inputparameters":{
                "p1":"inputval",
                "p2":"inputvalue"
            },
            "outparameters":{
                "p1":"R1"
            }
        }
    ]
}

根据这个json串编写Java 配置类。如果json串中有[]数组形式的建议用list处理。具体实现类如下

package com.symbol.bean;

import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Map;

/**
 * 指令配置类
 */

public class Program {

    private String name;

    private String url;
    private String page;
    private String isNonProfit;

    private Map<String, String> input;

    private Map<String, String> output;

    private List<Opation> opations;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public String getIsNonProfit() {
        return isNonProfit;
    }

    public void setIsNonProfit(String isNonProfit) {
        this.isNonProfit = isNonProfit;
    }

    public Map<String, String> getInput() {
        return input;
    }

    public void setInput(Map<String, String> input) {
        this.input = input;
    }

    public Map<String, String> getOutput() {
        return output;
    }

    public void setOutput(Map<String, String> output) {
        this.output = output;
    }

    public List<Opation> getOpations() {
        return opations;
    }

    public void setOpations(List<Opation> opations) {
        this.opations = opations;
    }
}

因为opations是数组形式有多个json体,所以我用了List ,同时opations需要单独在写一个Java 配置类,具体如下

package com.symbol.bean;

import lombok.Getter;
import lombok.Setter;

import java.util.Map;

/**
 * 执行操作步骤配置文件
 */
public class Opation {

    private String symbol;

    private Map<String, String> inputparameters;


    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }

    public Map<String, String> getInputparameters() {
        return inputparameters;
    }

    public void setInputparameters(Map<String, String> inputparameters) {
        this.inputparameters = inputparameters;
    }

    public Map<String, String> getOutparameters() {
        return outparameters;
    }

    public void setOutparameters(Map<String, String> outparameters) {
        this.outparameters = outparameters;
    }

    private Map<String, String> outparameters;
}

以上就根据json串的形式配好了配置类
之后就把json串进行处理
导入<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>
依赖
在新建类里执行

//把字符串转换成json对象
        JSONObject jsonObject = JSONObject.parseObject(instruction);
        //根据配置类读取json对象的值
        Program program = JSONObject.toJavaObject(jsonObject, Program.class);

这样,就把json串中的各个属性值填充到配置类中了,你下面直接调用就可以取到数据了
例如:

program.getOpations().size()

以上就是读取处理json串的方法了,还可以进行set操作,修改json串的值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值