java json对象取值,js取出json对象的值
目录
Java在json中获取一个对象的值如何使用Java正则表达式——在JSON中获取一个属性值的语法匹配代码
Java获取JSON中某个对象的值
公共类ChangeJson {公共静态字符串getString(String data,String result){ JSON object JSON object=null;try { JSON object=new JSON object(data);} catch(JSON exception e){ e . printstacktrace();}返回jsonObject.optString(结果,null);}}
00-1010现在stringeresult中有以下JSON字符串,用于获取deptCode
{status 3360 0, data 3360 {deptid 3360 76, deptcode 3360 10103000 , deptname 3360 成都工务段, dirdept code 3360 10000000 dept level : 2, defaultRoleId : 1, create at 3: 2021-02-25 020//Get dept codestring dept code=change JSON . getstring(data, dept code );
00-1010处理数据时,应该匹配json数据格式的字符串属性的值。
Json数据格式:{flow_name:paramName}
获取flow_name属性的值:paramName
要怎么处理呢?
使用方式
[abc]]:表示字母abc w中的任意一个:除([0-9a-zA-Z_])外,还包含希腊字母、俄罗斯字母等。d:匹配数字数量控制符.
?表示1或0。换句话说,它意味着要么没有,要么只有一个意味着一个或多个。
Java正则表达式-获取json某个属性值
处理思路:
怎么写{flow _ name 3360 param name}正则表达式?匹配的是一个字符(数字、大小写和下划线的组合)。
flow_name是已知的,它需要与‘:‘param name’的内容相匹配。
string pattern str=key field : ([0-9a-zA-Z _])?;
语法
public static void main(String[]args){ String info=[{ SYNC _ 930000003690 : { 最终系统名称 : PXY-CPCP配置中心 , P _ REQUEST _ ID : 585471439551123454 , finalSYSTEMTYPE : BSS-PXY , finalDeveloperName : , finaltaxtCost : ,finalworkRemark:\ , formId :930000003690配置中心 , p _ REQUEST _ ID : 585471439551123455 , finalSYSTEMTYPE : BSS-PXY , finalDeveloperName : , finaltaxtCost : ,finalworkRemark:\ , formId :930000003694配置中心 , P _ REQUEST _ ID : 585471439551123456 , finalSYSTEMTYPE : BSS-PXY , finalDeveloperName : , finaltaxtCost : ,formId:930000003692, finalwork remark : String key field= P _ REQUEST _ id system。 出去。println(=====match key field =======);//w :数字,字母,下划线0-9 A-Z A-Z _ String patternStr=key field : ([0-9a-zA-Z _])?;matchJsonValue(info,patternStr);keyField= formIdsystem。出去。println(=====match key field =======);pattern str=键字段 :( d)?;matchJsonValue(info,patternStr);} /** * 正则表达式查找匹配数据字符串对应属性的值* @param sourcStr字符串* @param patternStr正则表达式* @返回字符集*/public static ListString matchJsonValue(String sourcStr,String patternStr){ ListString aim list=new ArrayList();模式模式=模式。编译(模式字符串);匹配器matcher=模式。matcher(sourcStr);while(matcher。find()){ system。出去。println( group all : matcher。组(0));系统。出去。println( aim index : 匹配器。组(数量实用程序.INTEGER _ ONE));目标列表。添加(匹配器。组(数量实用程序.INTEGER _ ONE));}返回aimList}结果:
=====match P _ REQUEST _ ID=======group all : P _ REQUEST _ ID : 585471439551123454 aim index : 585471439551123454 group all : P _ REQUEST _ ID : 585471439551123455 aim index : 5855360
总结:匹配数据格式字符串属性的时候,如果使用w的时候注意下,其可能包含希腊字母,俄文的字母。明确其内容的,直接写更直观。属性是数字的,就不用加双引号了,直接使用d匹配数字。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。