前段时间,需要从一个json的字符串中,拿出某个指定的元素。不知道用什么方式比较好,如果是XML格式大可使用诸如XPATH的方式进行指定查询,可这个是json格式,而且又在java后台,如果是前台我可以用javascript来描述这个json对象,javascript就可以用. . .的方式将元素的层次描述出来并且获得里面的值。可是在java代码中怎么能使用这一特性呢?
JDK 1.6提供了这样的一个新特性,script engine.
提供一个很好学习网址:里面有JAVA方面的N多例子:
http://www.java2s.com/CN/Code/Java/JDK-6/VariablesboundthroughScriptEngine.htm
/**
* @author exiong
* <p><b>JDK 6 new features. Using script engine(java-script engine to resolve the json object easier.)
*/
public class ScriptEngineImplement {
/**
* @param webServiceURL Request web-service URL
* @param jsonKey script engine request json's key e.g.: json.a.b[0].c Detail information please refer to the java-script json engine.
* @return The text value of the specified jsonKey.
*/
public static String fetchContentFromJSONWebSerivce(String webServiceURL ,String jsonKey)
{
String result = "";
String jsonString = WebserviceContentFetcher.fetchWebServicesContent(webServiceURL);
String temp = String.format("json = %s ; json = json.%s", jsonString , jsonKey);
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
try {
result = se.eval(temp).toString();
} catch (ScriptException e) {
e.printStackTrace();
}
return result;
}
}
代码中的
WebserviceContentFetcher.fetchWebServicesContent(webServiceURL);是我自己写的一个访问webservice数据的类,就是这个webservice给我返回的一串json格式的字符串。然而我需要里面指定的某个元素。于是我使用javaScriptEngine(当然还有很多其他的脚本引擎),构造出一个在js中使用的json对象,通过js来获得指定的元素。
注意: 这个js引擎是本事就带返回值的,但是其中temp中要求是不能有返回值的,也不存在什么定义变量的说法。也就是说不能写成 var json .... return json..类似的语句。其他的我自己还要继续研究。不过这个新特性还是给我提供了很方便的处理json的新方式。
分享到:
相关推荐
mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...
aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-...
1.okhttp3.8源码使用jdk1.6重新编译,已集成了okio,在javaweb项目中使用,未在安卓项目中使用 2.okhttp3.8源码使用jdk1.6重新编译_okhttp3.8.0-jdk1.6.jar
jdk1.6 源码
JDK 1.6 JDK 1.6 JDK 1.6 JDK 1.6 JDK 1.6 winxp专用 winxp专用winxp专用winxp专用winxp专用winxp专用
JDK 1.6 绿色版,我想很多人可能都需要,这是分卷4,剩下的分卷地址如下: JDK 1.6 绿色版 2 http://download.csdn.net/source/1502201 JDK 1.6 绿色版 3 http://download.csdn.net/source/1502209 JDK 1.6 绿色版...
适合okhttp,okio JDK1.6:okhttp3.8.0-jdk1.6.jar JDK1.6+:okhttp-3.12.13.jar;okio-1.15.0.jar 适用于Java开发环境、使用OkHttp调用
IBM JDK1.6 安装版
JDK1.6API。java1.6开发文档,最新官网文档。满足java开发需求
解决JDK1.6下的sun的Base64不可用情况。
JDK1.6百度云下载,里面有qq号,要是链接失效了,可以找我
Windows JDK 1.6 安装包,解压后直接双击安装,简单易用。 下面是Oracle官网对 Java 的介绍:Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development time...
支持JDK1.6,并且仅在1.6版本中使用,将URL生成二维码。压缩包内包括源码,是在zxing-zxing-3.3.0基础上做的适配,以支持jdk1.6。
ZxingUtil生成二维码适用JDK1.6及以下,自己使用JDK1.6,生成的二维码为彩色
jdk1.6jar jdk1.6.0_39.zip
java 官方原版 jdk 1.6
linux 64位IBM JDK1.6
jdk1.6windows-x64直接解压及用,绿色无毒,人工亲测,放心使用
jdk 1.6 环境变量配置说明 环境变量设置 jdk1.6