前段时间,需要从一个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的新方式。
分享到:
相关推荐
8. **脚本引擎支持**:通过ScriptEngine接口,JDK 1.6支持JavaScript、Groovy等脚本语言,使得Java应用可以嵌入和执行这些脚本。 9. **XML处理**:DOM4J和StAX等XML解析库的集成,使得XML处理更加便捷,提升了性能...
- **动态语言支持**:JDK 1.6增加了对脚本语言的支持,通过JSR 223(Scripting for the Java Platform)引入了ScriptEngine接口,使得Java平台可以更好地与其他脚本语言交互。 - **Swing增强**:包括UI组件的改进...
7. **脚本引擎支持**:JDK 1.6开始支持JavaScript和其他脚本语言,通过JSR 223引入了ScriptEngine API,使得Java与脚本语言的交互更加便捷。 8. **改进的JMX(Java Management Extensions)**:JMX在1.6中进行了...
此外,JDK 1.6还增强了Java的脚本语言支持,通过JSR 223引入了ScriptEngine接口,允许开发者在Java中执行JavaScript、Ruby等脚本语言。 总而言之,JDK 1.6作为Java的一个里程碑版本,不仅在性能、类库、工具和安全...
其中的中文版API帮助文档(JDK1.6 API帮助文档.CHM)为开发者提供了详细的中文语言解释,便于中国开发者理解和应用。该文档包括了各种类、接口、枚举和异常的描述,以及它们的方法和构造函数。关键更新和改进包括: ...
《Java编程:深入理解JDK 1.6 API》 Java编程语言以其强大的跨平台能力和丰富的类库在软件开发领域占据着重要的地位。JDK(Java Development Kit)是Java编程的基础,其中包含了编译器、运行环境以及各种工具。本文...
15. **脚本引擎**:通过ScriptEngine接口,Java 1.6开始支持JavaScript、Groovy等脚本语言的执行。 总的来说,Java API 1.6中文版是Java开发者的宝贵资源,它详细解释了Java平台的每一个组件,帮助开发者理解并有效...
《JDK API 1.6 中文版:Java开发者的宝藏》 在Java编程的世界里,JDK(Java Development Kit)API文档是开发者们不可或缺的参考资料。这份名为“JDK_API_1_6_zh_CN”的资源,正是针对Java 6版本的API,提供了中文的...
在JDK1.6中,javax.script包中的主要类和接口包括Bindings、Compilable、CompiledScript、ScriptEngine、ScriptEngineManager等。Bindings接口是脚本执行上下文的关键,它类似于一个map结构,可以存储Java对象,并...
3. **动态语言支持**:通过Java 6的JavaFX Script和ScriptEngine API,开发者可以更容易地集成和运行脚本语言,如JavaScript,使得Java平台成为多语言应用的平台。 4. **改进的内存管理**:Java 6对垃圾收集器进行...
在Java中,自JDK 1.6版本起,通过JSR 223(Java Scripting API)提供了对脚本语言的支持,包括JavaScript。下面将详细介绍两种主要的Java调用JavaScript方法的方式: 1. **调用Java代码内部编写的JavaScript方法** ...
- **动态语言支持**:通过JavaFX Script和ScriptEngine API,Java 1.6.0开始支持动态编程语言,允许开发者在Java环境中使用脚本语言。 - **改进的内存管理**:JVM的垃圾收集器得到了优化,提高了性能和响应速度。 ...
需要注意的是JDK版本范围1.6 >= 1.7,不支持JDK 1.8。 Description 运行方式 下载WAR包部署 参考Release描述进行部署,适用于JAVA熟练者的方式。 使用Docker运行 docker run -d -p 8080:8080 caryyu/javashop 访问...
- 运行计算器程序需要安装JDK,推荐1.6及以上版本。 11. **用户交互**: - 用户可以通过键盘或计算器面板输入,但某些操作(如乘号、除号等)有特定限制,防止错误输入。 - CE键用于清屏,Backspace键用于删除...
Java SE 6,又被称为Java 6或Java 1.6,是Java开发工具集(JDK)的一部分,提供了用于构建和运行Java应用程序的基础框架。 首先,Java SE 6的重要更新之一是增强了Swing GUI库。这一版本引入了新的组件,如...
到了2006年,Rhino 1.6R2版本正式成为Java SE 6的一部分,这意味着更多的Java开发者可以轻松地使用这个强大的JavaScript引擎。 #### Rhino的主要特点与功能 - **对JavaScript 1.5的全面支持**:Rhino提供了完整的...