org.json.JSONObject对象转json,json新增元素,根据json的key获取值。以及list对象格式字符串转jsonArray

org.json.JSONObject对象转json,json新增元素,根据json的key获取值。以及list对象格式字符串转jsonArray

首先设置好多类,并set值,制作一个比较复杂的含有map ,list ,等层级嵌套的对象

package testMap.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import testMap.bean.AllJava;
import testMap.bean.CreditData;
import testMap.bean.ZzcAntifraudReport_antifraudHittedRulesList;
import testMap.bean.ZzcAntifraudReport_blacklistRecordsList;
import testMap.bean.ZzcAntifraudReport_reasonCode;

public class TestClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ZzcAntifraudReport_antifraudHittedRulesList rule=new ZzcAntifraudReport_antifraudHittedRulesList();
		rule.setCc("CC");
		rule.setDd("dd");
		ZzcAntifraudReport_antifraudHittedRulesList rule2=new ZzcAntifraudReport_antifraudHittedRulesList();
		rule2.setCc("cc2");
		rule2.setDd("dd2");
		ZzcAntifraudReport_blacklistRecordsList records=new ZzcAntifraudReport_blacklistRecordsList();
		records.setAa("aa");
		records.setBb("bb");
		ZzcAntifraudReport_reasonCode code=new ZzcAntifraudReport_reasonCode();
		code.setEe("ee");
		code.setFf("ff");
		CreditData data=new CreditData();
		List<ZzcAntifraudReport_antifraudHittedRulesList> rulesLists=new ArrayList<ZzcAntifraudReport_antifraudHittedRulesList>();
		rulesLists.add(rule);
		rulesLists.add(rule2);
		data.setAntifraudHittedRulesList(rulesLists);
		data.setZzcAntifraudReport_count(33);
		data.setZzcAntifraudReport_id("tt");
		AllJava allJava=new AllJava();
		Map<String, Object> creditMapsMap=new HashMap<String, Object>();
		creditMapsMap.put("creditData", data);
		allJava.setCreditMap(creditMapsMap);
		allJava.setIfsuccess(true);
		//---------至此为复杂对象赋值完毕
		
		//对象转json
		JSONObject jsonObject=new JSONObject(allJava);
		System.err.println("========"+jsonObject.toString());
//		输出的结果是:========{"ifsuccess":true,"creditMap":{"creditData":{"zzcAntifraudReport_executedAt":null,"resonCode":null,"zzcAntifraudReport_id":"tt","blacklistRecordsList":null,"zzcAntifraudReport_count":33,"zzcAntifraudReport_riskLevel":null,"antifraudHittedRulesList":[{"dd":"dd","cc":"CC"},{"dd":"dd2","cc":"cc2"}],"zzcAntifraudReport_tenantCount":0}}}
		try {
			//通过key值获取value的第一种方法
			Object aaString=jsonObject.get("creditMap");
			JSONObject jsonObject2=new JSONObject(aaString.toString());
			Object aaString2=jsonObject2.get("creditData");
			System.out.println(aaString2);
//		输出的结果是:{"zzcAntifraudReport_executedAt":null,"resonCode":null,"zzcAntifraudReport_id":"tt","blacklistRecordsList":null,"zzcAntifraudReport_count":33,"antifraudHittedRulesList":[{"dd":"dd","cc":"CC"},{"dd":"dd2","cc":"cc2"}],"zzcAntifraudReport_riskLevel":null,"zzcAntifraudReport_tenantCount":0}
			JSONObject jsonObject3=new JSONObject(aaString2.toString());
			//直接输出
			System.out.println(jsonObject3.get("zzcAntifraudReport_id"));
//		输出结果是:tt
			System.out.println(jsonObject3.get("antifraudHittedRulesList"));
//			输出结果是:[{"dd":"dd","cc":"CC"},{"dd":"dd2","cc":"cc2"}]
			
//			使用getString(),getInt()等自带方法获取值
			String reportId=jsonObject3.getString("zzcAntifraudReport_id");
			System.err.println("reportId"+reportId);//reportIdtt
			int count=jsonObject3.getInt("zzcAntifraudReport_count");
			System.err.println("count"+count);//count33
//			使用jsonArray 获取map或list<object>格式的字符串,转成jsonArray
			Object list=jsonObject3.get("antifraudHittedRulesList");
			JSONArray jsonArray =jsonObject3.getJSONArray("antifraudHittedRulesList");
			for(int i=0;i<jsonArray.length();i++){
				JSONObject jsonObject4=jsonArray.getJSONObject(i);
				jsonObject4.get("dd");
				jsonObject4.get("cc");
				System.out.println("---"+jsonObject4.toString());
//		---{"dd":"dd","cc":"CC"}		
//		---{"dd":"dd2","cc":"cc2"}		
			}
			System.out.println(jsonArray);
//			[{"dd":"dd","cc":"CC"},{"dd":"dd2","cc":"cc2"}]

//			使用getBoolean()获取boolean类型
			boolean ifsuccess=jsonObject.getBoolean("ifsuccess");
			System.err.println("ifsuccess="+ifsuccess);//ifsuccess=true
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

使用到的类:从里到外:

package testMap.bean;

public class ZzcAntifraudReport_reasonCode {
	String ee;
	String ff;
	public String getEe() {
		return ee;
	}
	public void setEe(String ee) {
		this.ee = ee;
	}
	public String getFf() {
		return ff;
	}
	public void setFf(String ff) {
		this.ff = ff;
	}

}

package testMap.bean;

public class ZzcAntifraudReport_blacklistRecordsList {
	String aa;
	String bb;
	public String getAa() {
		return aa;
	}
	public void setAa(String aa) {
		this.aa = aa;
	}
	public String getBb() {
		return bb;
	}
	public void setBb(String bb) {
		this.bb = bb;
	}
	
}

package testMap.bean;

public class ZzcAntifraudReport_antifraudHittedRulesList {
	String cc;
	String dd;
	public String getCc() {
		return cc;
	}
	public void setCc(String cc) {
		this.cc = cc;
	}
	public String getDd() {
		return dd;
	}
	public void setDd(String dd) {
		this.dd = dd;
	}
	@Override
	public String toString() {
		return "ZzcAntifraudReport_antifraudHittedRulesList [cc=" + cc
				+ ", dd=" + dd + "]";
	}
	
}

package testMap.bean;

import java.util.Date;
import java.util.List;

public class CreditData {
	private String ZzcAntifraudReport_id;
	private Date ZzcAntifraudReport_executedAt;
	private List<ZzcAntifraudReport_blacklistRecordsList> blacklistRecordsList;
	private List<ZzcAntifraudReport_antifraudHittedRulesList>  antifraudHittedRulesList;
	private List<ZzcAntifraudReport_reasonCode> resonCode;
	private int ZzcAntifraudReport_tenantCount;
	private String ZzcAntifraudReport_riskLevel;
	private int ZzcAntifraudReport_count;
	public String getZzcAntifraudReport_id() {
		return ZzcAntifraudReport_id;
	}
	public void setZzcAntifraudReport_id(String zzcAntifraudReport_id) {
		ZzcAntifraudReport_id = zzcAntifraudReport_id;
	}
	public Date getZzcAntifraudReport_executedAt() {
		return ZzcAntifraudReport_executedAt;
	}
	public void setZzcAntifraudReport_executedAt(Date zzcAntifraudReport_executedAt) {
		ZzcAntifraudReport_executedAt = zzcAntifraudReport_executedAt;
	}
	public List<ZzcAntifraudReport_blacklistRecordsList> getBlacklistRecordsList() {
		return blacklistRecordsList;
	}
	public void setBlacklistRecordsList(
			List<ZzcAntifraudReport_blacklistRecordsList> blacklistRecordsList) {
		this.blacklistRecordsList = blacklistRecordsList;
	}
	public List<ZzcAntifraudReport_antifraudHittedRulesList> getAntifraudHittedRulesList() {
		return antifraudHittedRulesList;
	}
	public void setAntifraudHittedRulesList(
			List<ZzcAntifraudReport_antifraudHittedRulesList> antifraudHittedRulesList) {
		this.antifraudHittedRulesList = antifraudHittedRulesList;
	}
	public List<ZzcAntifraudReport_reasonCode> getResonCode() {
		return resonCode;
	}
	public void setResonCode(List<ZzcAntifraudReport_reasonCode> resonCode) {
		this.resonCode = resonCode;
	}
	public int getZzcAntifraudReport_tenantCount() {
		return ZzcAntifraudReport_tenantCount;
	}
	public void setZzcAntifraudReport_tenantCount(int zzcAntifraudReport_tenantCount) {
		ZzcAntifraudReport_tenantCount = zzcAntifraudReport_tenantCount;
	}
	public String getZzcAntifraudReport_riskLevel() {
		return ZzcAntifraudReport_riskLevel;
	}
	public void setZzcAntifraudReport_riskLevel(String zzcAntifraudReport_riskLevel) {
		ZzcAntifraudReport_riskLevel = zzcAntifraudReport_riskLevel;
	}
	public int getZzcAntifraudReport_count() {
		return ZzcAntifraudReport_count;
	}
	public void setZzcAntifraudReport_count(int zzcAntifraudReport_count) {
		ZzcAntifraudReport_count = zzcAntifraudReport_count;
	}
	@Override
	public String toString() {
		return "CreditData [ZzcAntifraudReport_id=" + ZzcAntifraudReport_id
				+ ", ZzcAntifraudReport_executedAt="
				+ ZzcAntifraudReport_executedAt + ", blacklistRecordsList="
				+ blacklistRecordsList + ", antifraudHittedRulesList="
				+ antifraudHittedRulesList + ", resonCode=" + resonCode
				+ ", ZzcAntifraudReport_tenantCount="
				+ ZzcAntifraudReport_tenantCount
				+ ", ZzcAntifraudReport_riskLevel="
				+ ZzcAntifraudReport_riskLevel + ", ZzcAntifraudReport_count="
				+ ZzcAntifraudReport_count + "]";
	}
	
}

package testMap.bean;

import java.util.Map;

public class AllJava {
	boolean ifsuccess;
	Map<String, Object> creditMap;
	public boolean isIfsuccess() {
		return ifsuccess;
	}
	public void setIfsuccess(boolean ifsuccess) {
		this.ifsuccess = ifsuccess;
	}
	public Map<String, Object> getCreditMap() {
		return creditMap;
	}
	public void setCreditMap(Map<String, Object> creditMap) {
		this.creditMap = creditMap;
	}
	@Override
	public String toString() {
		return "AllJava [ifsuccess=" + ifsuccess + ", creditMap=" + creditMap
				+ "]";
	}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106274.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytorch交叉熵损失函数计算_pytorch loss不下降

    pytorch交叉熵损失函数计算_pytorch loss不下降MSE:MeanSquaredError(均方误差)含义:均方误差,是预测值与真实值之差的平方和的平均值,即:MSE=1N∑i=1n(xi−yi)2\begin{aligned}MSE=\cfrac{1}{N}\sum_{i=1}^n(x_i-y_i)^2\end{aligned}MSE=N1​i=1∑n​(xi​−yi​)2​  但是,在具体的应用中跟定义稍有不同。主要差别是参数的设置,在torch.nn.MSELoss中有一个reduction参数。reduction是维度要不要

    2022年9月18日
    0
  • 【转载文章】windows批处理命令教程_____附加自己学习笔记

    【转载文章】windows批处理命令教程_____附加自己学习笔记https://www.jb51.net/article/41322.htm批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的…

    2022年8月22日
    6
  • python用pycharm还是vscode_pycharm自带python吗

    python用pycharm还是vscode_pycharm自带python吗python的两大IDE开发利器,pycharm和vscode,二者各有优劣,本文主要谈谈二者的调试对比。pycharmvsvscode简单对比pycharm优点:python开发利器,专为python设计内置功能丰富,比如可以在IDE中直接查看sql数据库,前提是有插件:DBBROWER查看类、函数定义方便,只需简单通过ctrl+鼠标左键即可完成可直接定义项目工作目录,在fil…

    2022年8月28日
    3
  • pycharm下载和安装教程_pycharm下载官网

    pycharm下载和安装教程_pycharm下载官网python,pycharm下载安装使用

    2022年8月27日
    9
  • 高通msm8937的BLSP学习

    高通msm8937的BLSP学习1.基础概念(1)  BusAccessModule(BAM),总线访问模块BAMisusedtomovedatato/fromtheperipheralbuffers.(2)  BAMLow-SpeedPeripheral(BLSP),低速接口的总线访问模块(3)  QUP:QualcommUniversalPeripheral,高通统一的…

    2022年10月19日
    2
  • SPPNet网络模型[通俗易懂]

    SPPNet网络模型[通俗易懂]上篇文章详细阐述了R-CNN网络模型,本篇本章本来准备阐述Fast-RCNN模型的,介于SPP-Net模型有许多技巧性的技术可以在不同模型上使用,所以本篇详细分析下SPP-NetSPPNet论文:https://arxiv.org/abs/1406.4729SPPNet论文翻译:https://blog.csdn.net/mengduan…

    2022年6月9日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号