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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 大数据与云计算物联网的关系文献_云计算的概念

    大数据与云计算物联网的关系文献_云计算的概念云计算、大数据和物联网代表了IT领域最新的技术发展趋势,三者既有区别又有联系。云计算最初主要包含了两类含义:一类是以谷歌的GFS和MapReduce为代表的大规模分布式并行计算技术;另一类是以亚马逊的虚拟机和对象存储为代表的“按需租用”的商业模式。但是,随着大数据概念的提出,云计算中的分布式计算技术开始更多地被列入大数据技术,而人们提到云计算时,更多指的是底层基础IT资源的整合优化…

    2022年10月7日
  • 迁移学习——Domain Adaptation

    DomainAdaptation在经典的机器学习问题中,我们往往假设训练集和测试集分布一致,在训练集上训练模型,在测试集上测试。然而在实际问题中,测试场景往往非可控,测试集和训练集分布有很大差异,这时候就会出现所谓过拟合问题:模型在测试集上效果不理想。以人脸识别为例,如果用东方人人脸数据训练,用于识别西方人,相比东方人识别性能会明显下降。当训练集和测试集分布不一致的情况下,通过在训练…

    2022年4月16日
  • eclipse怎么导入java文件_Eclipse如何导入JAVA工程?如何将项目导入Eclipse中?

    eclipse怎么导入java文件_Eclipse如何导入JAVA工程?如何将项目导入Eclipse中?Eclipse如何导入JAVA工程?很多用户在学习Eclipse的过程中都会不小心把项目给删除了,到这里,笔者要先说一下“没关系,先不要慌张”,如果你把项目删除了,是可以通过导入的方法找回来的。具体方法见下文。Eclipse如何导入JAVA工程?1、在电脑桌面找到Eclipse快捷方式。2、双击打开Eclipse,在弹出的“WorkspsceLauncher”对话框中,点击后面的“Browse”…

    2022年7月8日
  • ADMM算法简介_RMA算法

    ADMM算法简介_RMA算法前言这篇博客旨在介绍下最近在通信中经常用到的ADMM算法。算法的全称为AlternatingDirectionMethodofMultipliers,中文直译为:交替方向乘子法。本文的参考文献为Boyd的经典著作:DistributedOptimizationandStatisticalLearningviatheAlternatingDirectionMethodofMultipliers,事实上从名字就可以看出,正如Boyd在摘要中所提到的,AD

    2022年10月26日
  • JavaScript获取路径

    JavaScript获取路径

    2022年1月1日
  • navicat永久激活码最新[最新免费获取]

    (navicat永久激活码最新)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSW…

    2022年3月26日

发表回复

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

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