【02上篇】JSON比较——JAVA之利用JSON数据unescapeJava / WEB之利用reflect-metadata(实战操作)

本文介绍如何在Java和Angular中进行JSON比较。通过Java的字符串转义演示及Angular的数据处理,展示如何处理用户操作日志并进行差异分析。讨论了在大量字段比较时可能遇到的内存溢出问题,并推荐了更好的比较方法和class-validator库。
摘要由CSDN通过智能技术生成

公司需求如下:用户当前操作和上一次保存操作进行对比,然后显示到前端web弹窗,首先上一次操作毕竟是日志,包含了各种各样的操作,同事就用类外加整个对象来标识到底是对什么进行了操作,就才会有如下的className这个东西,同时要对当前的操作,也就是update的整个对象和之前存储日志的className这个东西进行对比,json的比较就是第一步!

JAVADEMO

package com.gisquest.tdcb.tdcbitem.utils;


import com.alibaba.fastjson.JSONObject;
import com.gisquest.realestate.utils.StringUtils;
import org.apache.commons.lang3.StringEscapeUtils;

import java.util.Iterator;

/**
 * Created by Administrator on 2019/7/20.
 */
public class Demo {

    public static void main(String[] args) {
        String className = "yscdkData";

        StringBuffer sb = new StringBuffer();

        // String st1 = "{\"dmj\":1111.0}";
        // String st1 = null;
        // String st2 = "{\"yscdkData\":{\"dmj\":33.0,\"dswQksm\":\"22\"}}";

        /* before */
        String st1 = "{\"dmj\":1111.0,\"dswQksm\":\"22\",\"xmCj\":\"3\",\"cqMj\":0,\"sfyCbz\":\"1\",\"yxgmMj\":0,\"lmj\":1111.0,\"pcXzmj\":3,\"yxgmZc\":0,\"tdqqKfcb\":-1,\"qtfsqdMj\":0,\"pgFs\":\"2\",\"zjCb\":0,\"zyzyZc\":0,\"qtZc\":0,\"tdjb\":\"2\",\"sjCb\":-1,\"sgMj\":0,\"tdsgZc\":0,\"dwMc\":\"杭州市余杭区土地储备发展中心\",\"zdBh\":\"201901019\",\"nrCbLy\":\"4\",\"haveJzd\":0,\"sbSj\":1562169600000,\"sflyDxtd\":\"0\",\"sflyXztd\":\"1\",\"dswQk\":\"1\",\"xmZt\":\"13\",\"ghFs\":\"3\",\"zdZl\":\"临平新城核心区A-3-06拟招拍挂地块(东至星河南路、南至文正街、西至河道、北至东仁街)\",\"clMj\":0,\"lydxtdMj\":0,\"zszyMj\":1,\"xzqDm\":\"330110\",\"dkMc\":\"e\",\"pgj\":333,\"jzdjnh\":\"3\",\"qtCb\":0,\"qqKfqk\":\"222\",\"createDate\":1562169600000,\"zdMj\":1,\"dzBaBh\":\"3301102015S00635\",\"cqbcazZc\":0,\"nrCbSj\":1562169600000,\"tCbGhyt\":[{\"modifyDate\":1562169600000,\"ghytGuid\":\"c1be0530-a06e-fdf4-78a9-9839245c4e1a\",\"ghytMj\":1,\"tdYt\":\"6\",\"cbGuid\":\"31bb176e-7c28-01be-d245-1bc0617a6916\",\"createDate\":1562169600000}],\"cbjgGuid\":\"6b70a1e4-cb83-1e9f-9aca-c8a53f8a1b30\",\"sczGuid\":\"9d7dffc2-9c74-4671-82cd-d7a902112d65\",\"shMj\":0,\"tdshZc\":0,\"tdmqzt\":\"333\",\"rkDkbh\":\"1212\",\"tCbCbglpws\":[{\"zpcmj\":111,\"cbglpwGuid\":\"42f44bca-ab7f-66b8-84ec-f1b3dc882724\",\"xzMj\":3,\"cbdkGuid\":\"31bb176e-7c28-01be-d245-1bc0617a6916\",\"pzWh\":\"333\"}],\"tCbzs\":[{\"cbzBh\":\"3\",\"modifyDate\":1563465600000,\"zzMj\":3,\"qlrMc\":\"3\",\"cbzGuid\":\"cc616b0f-606f-887c-dcaa-6ee5527e8404\",\"cbGuid\":\"31bb176e-7c28-01be-d245-1bc0617a6916\",\"createDate\":1563465600000}],\"createUser\":\"yhcbjg\",\"tdQdCb\":0,\"isNdzcpg\":\"0\",\"cbGuid\":\"31bb176e-7c28-01be-d245-1bc0617a6916\",\"lyxztdMj\":0}";
        /* after */
        String st2 = "{\"yscdkData\":{\"dmj\":1111.0,\"dswQksm\":\"22\",\"xmCj\":\"3\",\"cqMj\":0,\"sfyCbz\":\"1\",\"yxgmMj\":0,\"lmj\":1111.0,\"pcXzmj\":3,\"yxgmZc\":0,\"tdqqKfcb\":-1,\"qtfsqdMj\":0,\"pgFs\":\"2\",\"zjCb\":0,\"zyzyZc\":0,\"qtZc\":0,\"tdjb\":\"2\",\"sjCb\":-1,\"sgMj\":0,\"tdsgZc\":0,\"dwMc\":\"杭州市余杭区土地储备发展中心\",\"zdBh\":\"201901019\",\"haveJzd\":0,\"sbSj\":1562169600000,\"sflyDxtd\":\"0\",\"sflyXztd\":\"1\",\"dswQk\":\"1\",\"xmZt\":\"13\",\"ghFs\":\"3\",\"zdZl\":\"临平新城核心区A-3-06拟招拍挂地块(东至星河南路、南至文正街、西至河道、北至东仁街)\",\"clMj\":0,\"lydxtdMj\":0,\"zszyMj\":1,\"xzqDm\":\"330110\",\"dkMc\":\"4445ABCD\",\"pgj\":333,\"jzdjnh\":\"3\",\"qtCb\":0,\"qqKfqk\":\"222\",\"createDate\":1562169600000,\"zdMj\":1,\"cqbcazZc\":0,\"nrCbSj\":1562169600000,\"tCbGhyt\":[{\"modifyDate\":1562169600000,\"ghytGuid\":\"c1be0530-a06e-fdf4-78a9-9839245c4e1a\",\"ghytMj
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值