java json字符串转对象

本文详细介绍如何使用net.sf.json库中的JSONArray和JSONObject类将JSON字符串转换为Java对象。通过实例演示了如何将JSON数组转换为Java List集合,并将每个JSON对象映射到自定义的Java实体类AddressInfo。此外,提供了在线JSON转Java实体类工具链接。

java JSON字符串转对象

文中涉及到jar包为:

net.sf.json.JSONArray;
net.sf.json.JSONObject;

话不多,直接撸代码 :

仅供参考


	//数据对象格式
	String jsonStr = "[{'prov': '陕西省','city': '西安市','area': '莲湖区','street': '东大街'},{'prov': '陕西省','city': '西安市','area': '雁塔区','street': '芙蓉东路'}]";
	JSONArray json = JSONArray.fromObject(jsonStr);
	
	//定义一个list集合,存解析出来的对象
	List<AddressInfo> address = new ArrayList<AddressInfo>();
	
	if(json.size()>0) {
		for (int i = 0; i < json.size(); i++) {
			//遍历数组,把每一个对象转成json对象
			JSONObject job = json.getJSONObject(i);
			//将json对象转成AddressInfo
			AddressInfo rsp = (AddressInfo)JSONObject.toBean(job,AddressInfo.class);
			//将AddressInfo添加到集合中
			address.add(rsp);
		}
	}
	
	//遍历集合,打印部分值,也可以在此进行,添加数据库,获取导出
	address.forEach(item->{
		System.out.println(item.getCity());
		System.out.println(item.getArea());
	});	

AddressInfo实体类

public class AddressInfo {

	private String prov;
	private String city;
	private String area;
	private String street;

	public void setProv(String prov) {
		this.prov = prov;
	}

	public String getProv() {
		return prov;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getCity() {
		return city;
	}

	public void setArea(String area) {
		this.area = area;
	}

	public String getArea() {
		return area;
	}

	public void setStreet(String street) {
		this.street = street;
	}

	public String getStreet() {
		return street;
	}

}

最后是控制台打印出的内容:

西安市
莲湖区
西安市
雁塔区

** 本文仅供参考,另提供一个

在线JSON字符串转Java实体类(JavaBean、Entity)

http://www.bejson.com/json2javapojo/new/?tdsourcetag=s_pcqq_aiomsg

操作方法很简单,
将你的json数据,直接复制进去,就会生成实体类!


如有错误,

还请包涵,

新手上路,

多多指教,

请系好安全带!!!!

<think> 首先,用户的问题是“java JSON字符串对象”,翻译过来是“Java中将JSON字符串换为对象”。我需要用中文回答这个问题。 根据系统提示,回答完问题后,必须在末尾提出3-5个相关问题。第一行必须完整输出“§§相关问题§§”,禁止换行分散。相关问题必须基于用户的问题和我的回答。 我的回答结构: 1. 回答用户的问题:解释如何用JavaJSON字符串换为对象。 2. 在末尾添加“§§相关问题§§”,然后列出3-5个相关问题。 用户的问题是关于JavaJSON字符串对象的方法。常见的做法是使用库如Jackson或Gson。 例如: - 使用Jackson:`ObjectMapper`类的`readValue`方法。 - 使用Gson:`Gson`类的`fromJson`方法。 我应该提供一个简单的代码示例,类似于示例格式中的Python代码。系统提示展示了代码块。 所以,我需要: - 简要解释过程。 - 提供代码示例。 - 然后添加相关问题。 相关问题必须基于用户的问题和我的回答。相关主题可能包括: 1. 如何处理复杂对象或嵌套结构? 2. 异常处理。 3. 反序列化配置。 4. 其他JSON操作。 列出3-5个问题。 确保输出格式: - 回答主体。 - 然后“§§相关问题§§”一行。 - 接着1. 2. 3. ... 的问题列表。 禁止换行分散,意思是相关问题列表不要有额外的换行或分隔符。应该紧凑输出。 最终输出结构: - 我的回答文本。 - 代码块(如果需要)。 - “§§相关问题§§” - 相关问题列表:1. ... 2. ... 3. ... 现在,构建回答: 1. **解释**:在Java中,将JSON字符串换为对象通常使用JSON处理库如Jackson或Gson。以下是使用Jackson的示例。 2. **代码示例**:提供一个简单的Java代码。 ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonExample { public static void main(String[] args) { String json = "{\"name\":\"John\", \"age\":30}"; ObjectMapper objectMapper = new ObjectMapper(); try { Person person = objectMapper.readValue(json, Person.class); System.out.println(person.getName()); // 输出: John } catch (Exception e) { e.printStackTrace(); } } } class Person { private String name; private int age; // Getters and setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` 3. **简要说明**:这只是一个基本示例,实际中需要处理异常和配置。 然后,添加相关问题: - 基于这个,问题可以是: 1. 如何在Java中处理JSON字符串换时的异常? 2. 使用Gson库实现JSON对象的方法是什么? 3. 如何换包含数组或嵌套对象JSON字符串? 4. 在反序列化过程中如何自定义字段映射? 5. JSON对象在实际Java项目中的应用场景有哪些? 我需要3-5个,所以选择4个。 最后,确保“§§相关问题§§”是第一行在相关问题部分,并且紧跟着列表。 完整输出: [回答文本] [代码块] §§相关问题§§ 1. 如何在Java中处理JSON字符串换时的异常? 2. 使用Gson库实现JSON对象的方法是什么? 3. 如何换包含数组或嵌套对象JSON字符串? 4. JSON对象Java Web开发中的常见用途有哪些? </think> 在Java中,将JSON字符串换为对象通常使用第三方库如Jackson或Gson来处理反序列化。以下是使用Jackson库的简单示例步骤: 1. 添加Jackson依赖(如Maven): ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.0</version> </dependency> ``` 2. 定义一个Java类(如Person)匹配JSON结构。 3. 使用`ObjectMapper`的`readValue`方法换。 完整代码示例: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonToObjectExample { public static void main(String[] args) { String jsonString = "{\"name\":\"Alice\",\"age\":25}"; // JSON字符串 ObjectMapper objectMapper = new ObjectMapper(); try { // 将JSON字符串换为Person对象 Person person = objectMapper.readValue(jsonString, Person.class); System.out.println("Name: " + person.getName() + ", Age: " + person.getAge()); } catch (Exception e) { e.printStackTrace(); // 处理异常,如JSON格式错误 } } } // 定义匹配JSONJava类 class Person { private String name; private int age; // Getters和setters(必须提供,否则无法反序列化) public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` 输出结果:`Name: Alice, Age: 25`。此方法支持处理嵌套对象、数组等复杂结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值