mirror of
https://github.com/kaka111222333/kaka111222333.github.io.git
synced 2025-12-21 09:15:08 +08:00
创建博客
This commit is contained in:
47
_posts/2015-02-22-javajs.md
Normal file
47
_posts/2015-02-22-javajs.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
layout: post
|
||||
title: Java中用js解析json
|
||||
tags: ScriptEngineManager Java javascript
|
||||
categories: java
|
||||
published: java
|
||||
---
|
||||
|
||||
在java中如何解析json?fastjson?jackson?那未免太无趣了
|
||||
|
||||
其实我们可以试试ScriptEngine
|
||||
|
||||
~~~java
|
||||
public class NashornTest {
|
||||
|
||||
private static String json = "[{name:'A',age:'18'},{name:'B',age:'19'},{name:'C',age:'30'}]";
|
||||
|
||||
private static String script =
|
||||
"function parse(json){" +
|
||||
" var names = new Array();" +
|
||||
" for(var i in json){" +
|
||||
" names.push(json[i].name);" +
|
||||
" }" +
|
||||
" return names;" +
|
||||
"};" +
|
||||
"parse(" + json + ");";
|
||||
|
||||
public static void main(String[] args) throws ScriptException {
|
||||
ScriptEngineManager manager = new ScriptEngineManager();
|
||||
ScriptEngine engine = manager.getEngineByName( "JavaScript" );
|
||||
|
||||
Map<String,String> result = (Map<String,String>)engine.eval(script);
|
||||
result.forEach((k,v) -> System.out.println(v));
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
输出:
|
||||
|
||||
A
|
||||
|
||||
B
|
||||
|
||||
C
|
||||
|
||||
> 代码中使用了 [lambda](http://blog.rainynight.top/2014-12-13/java-newfeature/# lambda)
|
||||
|
||||
Reference in New Issue
Block a user