在这里我需要读取的是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>
在这里我需要读取的是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 Stri...
oql2json-从Netcool ITNM OQL ANTLR生成的转换器插入JSON
是一个网络建模软件套件。 它使用内部对象查询语言(OQL)数据库,该数据库具有类似SQL的语法,本机支持嵌套数组和哈希作为数据类型。
oql2json主要是一种,它理解OQL插入语句,然后理解一些代码行以遍历解析树并将其转换为JSON。
(shell) $ git clone https://github.com/rc9000/oql2json
(shell) $ cd cd oql2json/oql2json
(shell) $ mvn package
(shell) $ cat examples/ex1.txt
insert into master.entityByName
( EntityName, BaseName, EntityType )
values
( "the
结果前言最近开发的Java Web系统中涉及到为移动端写接口,需要返回JSON数据,而移动端用的是API Cloud开发的,调用它上面的电话插件时要按照他执行的格式。首先看一下他要求的格式:[
"employee_id" : 191,
"remark" : "王科研",
目录JSON数据结构简介JSON 表示对象JSON 格式表示数组JSON嵌套JSON数据嵌套1JSON数据嵌套2JSON数据嵌套3
JSON数据结构简介
JSON数据结构一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object
Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API 。
优点:易于人的阅读和编写,易于程序解析与生产,它相比xml格式的数据结构,占用的数据控件更小。
JSON数据结构的表示如下:
JSON 表示对象
JSON数据结构表示对象一般用大括号{},大括号里面
json-20230227.jar下载,org.json是一款 veteran 的 Java JSON 处理库。它提供了一组简单的 Java APIs 来处理 JSON,简化了 Java 与 JSON 的交互过程。org.json体积小、性能出色且无依赖,在 Android 和 Java 项目中被广泛使用。
org.json 的主要功能有:
1. 简洁的 API:org.json 提供简单易用的 API 来创建 JSON 对象、解析 JSON 字符串,一般只需要一行或两行代码。
2. 小体积:org.json 是一个非常轻量级的库,作为一个 jar 包只有 26KB 左右,无依赖,非常适合在 Android 和 Java 项目中使用。
3. 快速高性能:org.json 基于字符串解析 JSON,性能表现极佳,解析速度比其他基于流或DOM的 JSON 库要快得多。
4. 支持 JSON 对象和数组:可以将 JSON 对象和数组与 Java Map、List 相互转换。
5. 支持嵌套 JSON 对象:org.json 支持解析嵌套的 JSON 对象结构。
6. 双向转换:org.jso
public static void main(String[] args) {
String str="{ \"head\":{\"snd_time\":\"20151020234832\",\"snder\":\"S\"} ,\"body\":{\"app_id\":\"APP002\",\"records\":[{\"excp_stat\":\"0\",\"fields\":[{\"req_time\":\"20140828000312\",\"tran_date\":\"121226\"}]}]} }";
System.out.println(str);
/*普通数据生成json数组*/
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray1 = JSONArray.fromObject( boolArray );
System.out.println( jsonArray1 );
// prints [true,false,true]
/*List生成json数组*/
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
System.out.println( jsonArray2 );
// prints ["first","second"]
/*String生成json数组*/
JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );
System.out.println( jsonArray3 );
// prints ["json","is","easy"]
/*Map生成json*/
Map<Object, Object> map = new HashMap<Object, Object>();
map.put("name", "Ren");
map.put("sex", "man");
map.put("age", 24);
JSONObject obj = JSONObject.fromObject(map);
System.out.println(obj);
//输出结果{"sex":"man","age":24,"name":"Ren"}
/*嵌套生成json*/
JSONArray jsonArr = new JSONArray();
JSONObject jsonObj = new JSONObject();
for (int i = 1; i <= 3; i++) {
JSONObject tjo = new JSONObject();
tjo.put("optValue", i+"");
tjo.put("optText", i+"Text");
jsonArr.add(tjo);
jsonObj.put("options", jsonArr);
System.out.println(jsonObj);
//输出结果 {"options":[{"optValue":"1","optText":"1Text"},{"optValue":"2","optText":"2Text"},{"optValue":"3","optText":"3Text"}]}
/*嵌套生成json*/
JSONObject tobj = new JSONObject();
JSONArray tarr = new JSONArray();
tobj.put("name", "zhangsan");
tobj.put("age", 29);
tarr.add(tobj);
tarr.add(obj);
System.out.println(tarr);
//[{"name":"zhangsan","age":29},{"sex":"man","age":24,"name":"Ren"}]
tobj.put("other", tarr);
System.out.println(tobj);
//输出结果 {"name":"zhangsan","age":29,"123":[{"name":"zhangsan","age":29},{"sex":"man","age":24,"name":"Ren"}]}
/*json的遍历(单层)*/
String jsonString = tobj.toString();
JSONObject jsonObject = JSONObject.fromObject(str);
Iterator keyIter = jsonObject.keys();
while( keyIter.hasNext()) {
String key = (String)keyIter.next();
Object value = jsonObject.get(key);
System.out.println(key + "--==" + value);
/*测试递归遍历json(多层)*/
System.out.println("---------------------------------------------------------");
getJsonValue(str);
* 递归遍历json所有子条目
public static String getJsonValue(String json) {
if(!json.contains("{") && !json.contains("[") && json.contains(":")) {
return json;
} else if(json.equals("")){
return json;
} else if(json.trim().charAt(0) == '{'){
String value = null;
JSONObject jsonObject = JSONObject.fromObject(json);
Iterator keyIter = jsonObject.keys();
while( keyIter.hasNext()) {
String key = (String)keyIter.next();
value = jsonObject.get(key).toString();
getJsonValue(value);
if(!value.contains("{") && !value.contains("[")) {
System.out.println(key + " = " + value);
return value;
} else if(json.trim().charAt(0) == '[') {
String value = null;
JSONArray jsonArr = JSONArray.fromObject(json);
for (int i = 0; i < jsonArr.size(); i++) {
value = jsonArr.getJSONObject(i).toString();
getJsonValue(value);
if(!value.contains("{") && !value.contains("[")) {
System.out.println("----"+value);
return value;
} else {
return "error";
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
* JSON实际上也是键值对("key":"value")
* key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
* value如果是字符串,用jsonobj.getString("key")获取
* value如果是数 字,用jsonobj.getIntValue("ke...
Java Fastjson是一种快速解析JSON数据的工具,可以轻松地将JSON数组转换为Java对象。使用Fastjson,您可以通过以下步骤解析JSON数组:
1. 导入Fastjson库
2. 创建JSON字符串
3. 使用Fastjson将JSON字符串转换为Java对象
4. 遍历Java对象,获取JSON数组中的数据
例如,以下是一个简单的示例代码,演示如何使用Fastjson解析JSON数组:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonArrayDemo {
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Jerry\",\"age\":20}]";
JSONArray jsonArray = JSON.parseArray(jsonStr);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
System.out.println("name:" + name + ", age:" + age);
在上面的示例中,我们首先创建了一个JSON字符串,其中包含两个对象。然后,我们使用Fastjson的`parseArray`方法将JSON字符串转换为JSONArray对象。接下来,我们遍历JSONArray对象,并使用`getJSONObject`方法获取每个对象。最后,我们从每个对象中获取`name`和`age`属性的值,并将它们打印到控制台上。
希望这个简单的示例能够帮助您了解如何使用Java Fastjson解析JSON数组。
CSDN-Ada助手:
Java环境下用SM2或者RSA格式生成P10
Java环境下用SM2或者RSA格式生成P10
fisher_40:
VUE中el-table-column列实现隐藏
tainanle、: