Java实现 JSON 的组装和解析

什么是JSON(JavaScript Object Notation)

JSON和xml一样都是数据交换格式。JSON是轻量级的,相比xml占带宽小、效率高

JSON只有两种结构:对象和数组

/*JSON对象,{}修饰,里面为 key1 : value1, key2 : value2形式,key和value可以是数字、字符串、对象和数组*/
json object{ "name" : "ymk" }

/*JSON数组,[]修饰,里面可以为数字、字符串、对象和数组*/
json Array[ json object ]

JSON常用解析框架有:Gson(谷歌)、JackJson(SpringMVC自带)、FastJson(阿里)、LoganSquare...

FastJson组装JSON

引入jar包

  	<!-- 添加json包 -->
  	<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
	<dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>fastjson</artifactId>
	    <version>1.2.47</version>
	</dependency>

JSON组装Demo

public static void main(String[] args) {
		// 1. 创建JSON对象
		JSONObject jsonObject = new JSONObject();
		// 2. 创建JSON数组
		JSONArray setisArray = new JSONArray();

		// 3. 内部对象装入JSON数组
		JSONObject bean1 = new JSONObject();
		bean1.put("name", "ymk");
		bean1.put("url", "www.ymk.com");
		setisArray.add(bean1);
		JSONObject bean2 = new JSONObject();
		bean2.put("name", "kmy");
		bean2.put("url", "www.kmy.com");
		setisArray.add(bean2);

		// 4. JSON数组装入JSON对象
		jsonObject.put("setis", setisArray);

		// 5. 转换成JSON字符串
		System.out.println(jsonObject.toJSONString());
	}

组装后JSON的对象

{"setis":[{"name":"ymk","url":"www.ymk.com"},{"name":"kmy","url":"www.kmy.com"}]}

FastJson解析JSON

解析Demo,对字符串要进行转义

	// 转义的JSON代码
	private static String JSONSTR = "{\"setis\": [{\"name\": \"ymk\",\"url\": \"www.ymk.com\"},{\"name\": \"kmy\",\"url\": \"www.kmy.com\"}]}";

	public static void main(String[] args) {
		// 1. 将json字符串转成json对象
		JSONObject jsonObject = new JSONObject();
		// 获取json对象
		JSONObject parseObject = jsonObject.parseObject(JSONSTR);
		// 获取json数组
		JSONArray sitesArrays = parseObject.getJSONArray("setis");
		for (Object object : sitesArrays) {
			JSONObject jsObject = (JSONObject) object;
			String name = jsObject.getString("name");
			String url = jsObject.getString("url");
			System.out.println(name + "----" + url);
		}
	}

解析后内容

ymk----www.ymk.com
kmy----www.kmy.com

参考:蚂蚁课堂

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Java实现的基本框架,用于接受传入的JSON数据,将其解析后插入到数据库,然后组装数据并将其推送到指定的HTTP接口。请注意,这个代码示例仅供参考,您需要根据具体的需求进行适当的修改和调整。 ``` import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import org.json.JSONObject; public class RiskManagement { public static void main(String[] args) { try { // 读取传入的JSON数据 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line); } String json = sb.toString(); // 解析JSON数据 JSONObject jsonObj = new JSONObject(json); String riskName = jsonObj.getString("name"); int riskLevel = jsonObj.getInt("level"); String riskDescription = jsonObj.getString("description"); // 将数据插入风险台账表 String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "INSERT INTO risk_management (name, level, description) VALUES (?, ?, ?)"; PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, riskName); statement.setInt(2, riskLevel); statement.setString(3, riskDescription); statement.executeUpdate(); // 组装数据并将其推送到HTTP接口 String apiUrl = "https://example.com/api"; URL obj = new URL(apiUrl); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "application/json"); JSONObject requestObj = new JSONObject(); requestObj.put("name", riskName); requestObj.put("level", riskLevel); requestObj.put("description", riskDescription); con.setDoOutput(true); con.getOutputStream().write(requestObj.toString().getBytes("UTF-8")); int responseCode = con.getResponseCode(); System.out.println("Response Code : " + responseCode); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码,首先读取了从其他接口传输过来的JSON数据,并将其解析JavaJSONObject对象。然后使用Java的JDBC API将解析后的数据插入到MySQL数据库。接下来,组装JSON格式的请求体,并使用Java的HttpURLConnection类发送POST请求将数据推送到指定的HTTP接口。最后,打印出HTTP响应码以供调试和记录。 请注意,这里使用的是Java SE的内置库来处理JSON和HTTP请求。如果您需要更高级的功能,例如更好的性能、更灵活的API、更好的错误处理等,那么您可能需要使用第三方库,例如Jackson或Gson来处理JSON,或者使用OkHttp或Apache HttpClient来处理HTTP请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值