Tih*_*hom 17 java groovy google-app-engine json facebook
我有一个来自REST JSON响应的以下字符串:
[
{
"uid":10512213,
"name":"Bob"
},
{
"uid":7208201,
"name":"John"
},
{
"uid":10570,
"name":"Jim"
},
{
"uid":1799657,
"name":"Sally"
}
]
Run Code Online (Sandbox Code Playgroud)
其余的响应定义来自Facebook:FB REST Link
我正在使用在Jetty中运行的Google App Engine + GAELYK.
在服务器上将上述内容转换为Groovy中的地图数组的最佳方法是什么?(这可能需要通过回复递归)
我正在寻找一些不包含大量库的简单方法.(我没有maven)
tim*_*tes 37
import groovy.json.JsonSlurper
// Example Response Data
def restResponse = '[{"uid":10512213, "name":"Bob"},{"uid":7208201, "name":"John"},{"uid":10570, "name":"Jim"},{"uid":1799657, "name":"Sally"}]'
// Parse the response
def list = new JsonSlurper().parseText( restResponse )
// Print them out to make sure
list.each { println it }
Run Code Online (Sandbox Code Playgroud)
使用JsonSlurper ......
读取该响应的示例脚本将是:
@Grab('net.sf.json-lib:json-lib:2.3:jdk15')
import net.sf.json.groovy.JsonSlurper
// Example Response Data
def restResponse = '[{"uid":10512213, "name":"Bob"},{"uid":7208201, "name":"John"},{"uid":10570, "name":"Jim"},{"uid":1799657, "name":"Sally"}]'
// Parse the response
def list = new JsonSlurper().parseText( restResponse )
// Print them out to make sure
list.each { println it }
Run Code Online (Sandbox Code Playgroud)
这输出:
[uid:10512213, name:Bob]
[uid:7208201, name:John]
[uid:10570, name:Jim]
[uid:1799657, name:Sally]
Run Code Online (Sandbox Code Playgroud)
如您所见,list是一个地图列表,所以如果您只想要一个名称列表,您可以这样做:
def names = list.name
Run Code Online (Sandbox Code Playgroud)
要在你的Gaelyk应用程序中使用它,你只需要从这里下载json-lib-2.3-jdk15.jar并做类似的事情(不用@Grab,因为你的WEB-INF/lib文件夹中有jar .
- 编辑 -
测试脚本中的@Grab为您做了很多后台工作
JSON数组以[字符开头,以字符结尾].JSON对象以a开头{并以}.结尾.
如果你去JSON.org,你可以下载JSONArray.java.用它来创建一个JSON数组.然后循环遍历数组for (int i = 0; i < array.length(); i++)并通过调用array.getJSONObject(i);返回来检索每个JSON对象JSONObject.从那里,获得相应的属性值,例如long uid = json.getLong("uid");
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
67409 次 |
| 最近记录: |