在这里我需要读取的是json数据中promote的img的url,name,shopPrice。
1.实体类
2.工具类Moblie_Utils根据url获取网络json格式数据
public class Moblie_Utils {
public static String loadJson(String url) {
StringBuilder json = new StringBuilder();
try {
URL urlObject = new URL(url);
URLConnection uc = urlObject.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String inputLine = null;
while ((inputLine = in.readLine()) != null) {
json.append(inputLine);
// System.out.println("json.toString()====="+json.toString());
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return json.toString();
3.json数据格式,json中包含嵌套json数组
"data": {
"promote": [
"id": 24,
"goods_id": 24,
"brief": null,
"img": {
"thumb": "http://image/1_0.jpg",
"url": "http://image/1_0.jpg",
"small": "http://image/1_0.jpg"
"market_price": "0.0",
"name": "F2000",
"promote_price": "",
"shop_price": "0.01"
"id": 92,
"goods_id": 92,
"brief": null,
"img": {
"thumb": "http://image/1_0.jpg",
"url": "http://image/1_0.jpg",
"small": "http://image/1_0.jpg"
"market_price": "0.0",
"name": "23000",
"promote_price": "",
"shop_price": "0.01"
"player": [
"action": null,
"action_id": null,
"description": null,
"photo": {
"thumb": null,
"url": "http://image/1_0.jpg",
"small": null
"url": ""
"action": null,
"action_id": null,
"description": null,
"photo": {
"thumb": null,
"url": "http://image/1_0.jpg",
"small": null
"url": ""
"status": {
"succeed": 1,
"error_code": null,
"error_desc": null
"paginated": null,
"session": null
4.控制层controller中
@Controller
@RequestMapping("/moblieHome")
public class Moblie_IndexController {
@RequestMapping(value = "/hotSale",produces = "text/html;charset=UTF-8")
public String mobileHomeCategory(Model model){
String url="http://xxxxx/home/data";
String homeDataJsonArrayString=Moblie_Utils.loadJson(url);
JSONObject jsonObject=null;
jsonObject= JSON.parseObject(homeDataJsonArrayString);
String data=jsonObject.getString("data");
if(data!=null &&data.length()>0){
System.out.println("data==="+data);
jsonObject= JSON.parseObject(data);
String promote_goods=jsonObject.getString("promote_goods");
if(data!=null &&data.length()>0){
System.out.println("promote_goods==="+promote_goods);
JSONArray jsonArray =jsonObject.getJSONArray("promote_goods");
JSONArray jsonArrayImg=null;
JSONObject object=null;
JSONObject objectImg=null;
List<MobileGoodsBrief> goodsList = new ArrayList<MobileGoodsBrief>();
MobileGoodsBrief good=null;
if(jsonArray!=null && jsonArray.size()>0) {
for (int i = 0; i < jsonArray.size(); i++) {
object = jsonArray.getJSONObject(i);
good=new MobileGoodsBrief();
good.setShopPrice(object.getString("shop_price"));
good.setPrice(object.getString("market_price"));
good.setName(object.getString("name"));
objectImg = JSON.parseObject(object.getString("img").toString());
good.setImgUrl(objectImg.getString("url"));
goodsList.add(good);
model.addAttribute("goodsList",goodsList);
return "index.jsp";
5.controller传值给jsp,
jsp头部注意添加c标签:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="http://tiles.apache.org/tags-tiles"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
</head>
<ul class="good">
<c:forEach items="${goodsList}" var="t">
<a target="_blank" href="jump/67939165">
<img src="${t.imgUrl}"/>
<a target="_blank" href="jump/67939165">
<h1><i class="ico13"><img src="${t.imgUrl}"></i> ${t.name}</h1>
<div class="list-price buy">
<i>¥</i><span class="price-new">${t.shopPrice}</span>
<i class="del">/¥${t.price}</i>
<span class="good-btn"><i class="ico15">
<img src="images/sts.png"/>
</i> 去抢购
</span>
</c:forEach>
</body>
</html>
1.实体类 2.工具类Moblie_Utils根据url获取网络json格式数据public class Moblie_Utils {public static String loadJson(String url) { StringBuilder json = new StringBuilder(); try { URL urlObject = new U
我记得json-lib中还有一个方法排除json中的数据,方法是JsonConfig()
以后补充。
方式二:谷歌还有一个json转换的jar包,稍微优点区别。依赖包和json-lib相同。
方式三:fastjson的使用
导入jar包
在java中将lis...
1 引言:
在数据解析过程中,json格式的数据多用来做前后端数据交互、接口数据交互等,弄清楚Java语言中解析json嵌套数组对于数据交互有着重要意义,本文基于自己的代码编写和逻辑梳理,整理出本篇干货,亲测有效。
2 理论:
2-1 json字符串和json对象的区别:
//格式区别:
//JSON字符串:
var str='{"name":"xiaoming","age":24}';
//JSON对象:
var obj={"name":"xiaoming","age":24};
2-2 简单的解析js
结果前言最近开发的Java Web系统中涉及到为移动端写接口,需要返回JSON数据,而移动端用的是API Cloud开发的,调用它上面的电话插件时要按照他执行的格式。首先看一下他要求的格式:[
"employee_id" : 191,
"remark" : "王科研",
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.Ty...
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"cars\":[\"Ford\", \"BMW\", \"Fiat\"]}";
JSONObject json = new JSONObject(jsonString);
parseJson(json);
public static void parseJson(JSONObject json) {
for (String key : json.keySet()) {
Object value = json.get(key);
if (value instanceof JSONObject) {
// 如果值是一个 JSON 对象,则递归解析它
parseJson((JSONObject) value);
} else if (value instanceof JSONArray) {
// 如果值是一个 JSON 数组,则遍历它并递归解析其中的每个元素
JSONArray jsonArray = (JSONArray) value;
for (int i = 0; i < jsonArray.length(); i++) {
Object element = jsonArray.get(i);
if (element instanceof JSONObject) {
parseJson((JSONObject) element);
} else {
// 如果值是一个基本类型,则输出它
System.out.println(key + ": " + value);
在上面的代码中,我们首先创建了一个包含 JSON 数据的字符串,并将其转换为一个 JSONObject 对象。然后,我们调用 parseJson 方法,并将 JSONObject 对象传递给它。在 parseJson 方法中,我们遍历 JSON 对象的所有键,并检查每个键所对应的值的类型。
如果值是一个 JSON 对象,则我们递归调用 parseJson 方法,将该值转换为 JSONObject 对象,并继续解析它。如果值是一个 JSON 数组,则我们遍历它并递归解析其中的每个元素。最后,如果值是一个基本类型,则我们输出它。
注意:在使用基于递归的方法解析 JSON 数据时,需要小心处理嵌套的 JSON 对象和数组,以避免出现无限递归的情况。
@Nonnull
@TypeQualifierDefault({ElementType.METHOD, ElementType.PARAMETER})
public @interface NonNullApi {
@NonNullApi
@NonNullFields
package org.springframework.scheduling.concurrent;
```[code=java]
[/code]
@Target:注解的作用目标
mac mysql 忘记初始root密码,重置密码
涣然冰释°:
mac mysql 忘记初始root密码,重置密码
涣然冰释°:
springboot java 分类树结构json封装通用工具类TreeUtil