日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

用字符串表达式访问JSON数据(java,fastjson)

發布時間:2023/12/9 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用字符串表达式访问JSON数据(java,fastjson) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

//單元科技-www.ccell.com.cn 技術部,開源
//XML數據有XPATH 如"root/rows[@id=1]/name"
//在JS中JSON數據可以對象方式訪問
//java中怎么 用字符串表達式訪問JSON數據? 找了很久沒有找到,自己寫一個,以減小代碼量,讓程序可讀性變強
//用法:
//?? JSONObject json = JSON.parseObject("{a:1,b:{}}");
//?? JSONHelper.putByJPath(json, "b.abc", 123);
//?? System.out.println(json);
//?? System.out.println(JSONHelper.getByJPath(json, "b.abc", Integer.class));
//代碼:
package com.ccell.json;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


public class JSONHelper {

? public static? <T> Object getByJPath(JSONObject root, String jpath, Class<T> cls) {

??? if (root == null) {
????? return null;
??? }

??? if (jpath == null || "".equals(jpath)) {
?????
????? if (cls.equals(JSONObject.class)){
??????? return root;
????? }else{
??????? return null;
????? }
??? }
???
??? String[] names = jpath.split("\\.");
??? String key = names[0];

??? JSONObject jobj = null;
??? Object result = null;

??? if (key.matches("^.+(\\[\\d+\\])+$")) {

????? String[] tmps = key.replaceAll("\\]", "").split("\\[");

????? JSONArray jarray = root.getJSONArray(tmps[0]);

????? if (jarray != null) {
??????? for (int j = 1; j < tmps.length; j++) {

????????? int index = Integer.parseInt(tmps[j]);
????????? if (j == tmps.length - 1) {
??????????? if (names.length == 1) {
????????????? result = jarray.getObject(index, cls);
??????????? } else {
????????????? jobj = jarray.getJSONObject(index);
????????????? result = getByJPath(jobj, jpath.substring(key.length() + 1), cls);
??????????? }
????????? } else {
??????????? jarray = jarray.getJSONArray(index);
????????? }
??????? }
????? }

??? } else {

????? if (names.length == 1) {
??????? result = root.getObject(key, cls);
????? } else {
??????? jobj = root.getJSONObject(key);
??????? result = getByJPath(jobj, jpath.substring(key.length() + 1), cls);
????? }

??? }
???
??? return result;
???
? }

? public static void putByJPath(JSONObject root, String jpath, Object value) {

??? String key = jpath;
??? String parentpath = "";
??? int pos =? jpath.lastIndexOf(".");
??? if (pos >= 0){
????? key = jpath.substring(pos + 1);
????? parentpath = jpath.substring(0,pos );?????
??? }

??? JSONObject jobj = (JSONObject) getByJPath(root,parentpath,JSONObject.class);
??? jobj.put(key, value);
???
? }
?
}

轉載于:https://my.oschina.net/u/162811/blog/76501

總結

以上是生活随笔為你收集整理的用字符串表达式访问JSON数据(java,fastjson)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品人妻一区二区中文字幕 | 国产区123| 日韩精品一区二区三区不卡在线 | 国产精品无码中文 | 欧美人妻日韩精品 | 97视频成人| a黄色一级片 | 亚洲女人18毛片水真多 | 91人人爽| 久久免费看少妇 | 欧美在线播放一区 | 韩日激情视频 | 五月婷婷七月丁香 | av资源网站 | 国产一二在线观看 | 久久久综合网 | 一区二区三区www污污污网站 | 欧美性受xxxx黑人猛交88 | 午夜精品久久久久久久久久蜜桃 | 99久久国 | 国产无| 韩国女同性做爰三级 | 亚洲一二三视频 | 麻豆一区二区三区在线观看 | 成人毛片100免费观看 | 永久免费av无码网站性色av | 久久国产精品波多野结衣av | 麻豆伊甸园 | 欧美一级特黄aaaaaa大片在线观看 | 玖玖视频 | 少妇天堂网 | 欧美啪啪一区二区 | 中文字幕第六页 | 国内久久久久 | 久久久久久久久久久久久久久久久久 | 国产成人精品123区免费视频 | 国产免费脚交足视频在线观看 | 少妇熟女视频一区二区三区 | 激情午夜天 | 污色视频 | 黑人操日本女人 | 国产午夜三级一区二区三 | 欧美成人一区二区三区 | 亚洲av女人18毛片水真多 | 黄三级 | 久久综合伊人 | av图区 | 老妇女av| 好屌妞视频这里只有精品 | 黄色的网站免费观看 | 国产精品免费看片 | 欧美三日本三级少妇三99 | 97超碰在线资源 | 人妻互换免费中文字幕 | 亚洲精品一区二 | 亚洲精品乱码久久久久久不卡 | 大尺度叫床戏做爰视频 | 一级大片视频 | 日日精品 | 国产无套免费网站69 | 凹凸av在线| 美丽的姑娘在线观看免费 | 99九九热| 青青在线观看视频 | 日韩av高清在线播放 | 天天搞夜夜 | 69式视频| 探花国产 | 亚洲影视精品 | 久久久在线免费观看 | 久久伊人亚洲 | 人人妻人人澡人人爽精品欧美一区 | 一级毛片黄片 | 免费污片在线观看 | 欧美另类xxxxx | 国产免费黄网站 | 人人澡人人澡 | 色94色欧美sute亚洲线路二 | 青青青在线视频 | 婷婷精品 | 二区免费视频 | 欧美猛交xxx| 午夜精品在线视频 | 天天干天天摸 | 狼人综合伊人 | 日韩av成人在线 | 好吊视频在线观看 | 丁香六月激情综合 | 伊人色综合久久久 | 插插网站 | 老司机免费视频 | 日韩在线观看视频一区二区三区 | 五月伊人网 | 91美女网 | 日本无遮挡边做边爱边摸 | 欧美久久久一区二区三区 | 久久午夜夜伦鲁鲁片 | 亚洲毛片在线免费观看 | 亚洲麻豆一区二区三区 |