JSON解析 JSONArray JSONObject

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;@RestController

@RequestMapping("/api")
public class AccountController extends BaseController {  
    @RequestMapping(value = "/v1/test")
    @ResponseBody
    public void test() {
        String json = new StrJson().invoke();
        JSONObject obj = JSONObject.parseObject(json);
//      后面有各种数据类型,根据对象来选择使用的数据类型
        JSONArray dataArray = obj.getJSONArray("data");
        System.out.println(dataArray.size());
        if (null != dataArray && dataArray.size() > 0)
            for (int i = 0; i < dataArray.size(); i++) {
                JSONArray mosaicsArray = analysisDataArray(dataArray, i);
                if (null != mosaicsArray && mosaicsArray.size() > 0)
                    for (int j = 0; j < mosaicsArray.size(); j++) {
                        analysisMosaicsArray(mosaicsArray, j);
                    }
            }
    }

    private JSONArray analysisDataArray(JSONArray dataArray, int i) {
        String metaStr = dataArray.get(i).toString();
        JSONObject dataObj = JSONObject.parseObject(metaStr);
        JSONObject metaObj = dataObj.getJSONObject("meta");
        JSONObject transactionObj = dataObj.getJSONObject("transaction");
        int id = metaObj.getInteger("id");
        String innerHash = metaObj.getString("innerHash");
        String height = metaObj.getString("height");
        JSONObject hash = metaObj.getJSONObject("hash");
        String hashData = hash.getString("data");
        String timeStamp = transactionObj.getString("timeStamp");
        String amount = transactionObj.getString("amount");
        String signature = transactionObj.getString("signature");
        String fee = transactionObj.getString("fee");
        String recipient = transactionObj.getString("recipient");
        String type = transactionObj.getString("type");
        String deadline = transactionObj.getString("deadline");
        String message = transactionObj.getString("message");
        String version = transactionObj.getString("version");
        String signer = transactionObj.getString("signer");
        JSONArray mosaicsArray = transactionObj.getJSONArray("mosaics");
        System.out.println(id + "<--->" + innerHash + "<--->" + height
                + "<--->" + hashData + "<--->" + timeStamp + "<--->" + amount + "<--->" + signature + "<--->" + fee + "<--->" + recipient + "<--->" + type + "<--->" + deadline + "<--->" + message + "<--->" + version + "<--->" + signer);
        return mosaicsArray;
    }

    private void analysisMosaicsArray(JSONArray mosaicsArray, int j) {
        String mosaicsStr = mosaicsArray.get(j).toString();
        JSONObject mosaicObj = JSONObject.parseObject(mosaicsStr);
        String quantity = mosaicObj.getString("quantity");
        JSONObject mosaicIdObj = mosaicObj.getJSONObject("mosaicId");
        String namespaceId = mosaicIdObj.getString("namespaceId");
        String name = mosaicIdObj.getString("name");
        System.out.println(quantity + "<--->" + namespaceId + "<--->" + name);
    }

  private class StrJson {
        public String invoke() {
            return "{\"data\":[{\"meta\":{\"innerHash\":{},\"id\":5090786,\"hash\":{\"data\":\"64a0b766f00d11118cfb0e57fae653204f4b9e9dc390365346d7db93ecb63779\"},\"height\":2151746}," +
                    "\"transaction\":{\"timeStamp\":130236780,\"amount\":10000000,\"signature\":\"71d6093abb487d35a38b3a3dd9b09d211e5950d5e66d8c3fdb735143a7cae674847ac3be184b4ac14cf4efca2ec9c4041fd0a6bae634189861afcddf5e57840b\",\"fee\":50000,\"recipient\":\"NAFHIAMSVKJN6OZFVT6ULSAT2CQ3TCUKCJ5QUUHG\",\"type\":257,\"deadline\":130323180,\"message\":{},\"version\":1744830465,\"signer\":\"659391cc1662cbd886b062210fbf453d49130051d26536cfcc804059c57473fd\"}},{\"meta\":{\"innerHash\":{},\"id\":5090775,\"hash\":{\"data\":\"8ec0f2794157875b2594c7c05031de354228f40991ff9471ce6e5a8536f41e25\"},\"height\":2151743},\"transaction\":{\"timeStamp\":130236722,\"amount\":1000000,\"signature\":\"3a3dc231c09b1c4e6319818db0a792e76bc99d0574768ae6fb0db4450db969929c67a4c1bcaddb55adebd56290f535b4a0c1fd1e0b18178307c9a4f2b92eff04\",\"fee\":50000,\"recipient\":\"NAFHIAMSVKJN6OZFVT6ULSAT2CQ3TCUKCJ5QUUHG\"" +
                    ",\"mosaics\":[{\"quantity\":10000000,\"mosaicId\":{\"namespaceId\":\"xarbon\",\"name\":\"xcu\"}}]," +
                    "\"type\":257,\"deadline\":130323122,\"message\":{},\"version\":1744830466,\"signer\":\"659391cc1662cbd886b062210fbf453d49130051d26536cfcc804059c57473fd\"}}]}";
        }
    }
}

发布了47 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34233080/article/details/90258398