我没有。数组/列表项的格式:(我使用的是Java)
{"scout": "webdriver", "short_version": "4.3", "long_name": "iPad", "api_name": "ipad",
"long_version": "4.3.", "automation_backend": "webdriver", "os": "Mac 10.6"}
我只需要:"os": "Mac 10.6"
如何使用list / json过滤它?
我的阵列得到了:
String[] str = platformJsonContent.split("}");
现在我得到了名单:
List<String> platforms = new ArrayList<String>();
for(int i=0; i<size; i++){
platforms.add(str[i]);
}
//过滤器应该在这里
答案 0 :(得分:4)
使用JSONObject或其他人阅读它可能更好。
JSONObject platforms = new JSONOBject(platformJsonContent);
platforms.get("os");
#=> "Mac 10.6"
请在此处查看更多文档:http://json.org/javadoc/org/json/JSONObject.html
如果你需要专门用作数组,最好使用JSONArray,它可以在解析后使用JSONObject上的.getJSONArray
方法从JSONObject获取。
http://json.org/javadoc/org/json/JSONArray.html
您需要下载并引用JSON java包:http://www.json.org/java/json.org,然后在任何构建系统中设置引用。最终代码可能类似于:
import org.json.JSONObject;
import org.json.JSONException;
public class Test {
public static void main(String[] args) {
try {
String platformJsonContent = "{\"scout\": \"webdriver\", \"short_version\": \"4.3\", \"long_name\": \"iPad\", \"api_name\": \"ipad\", \"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\"}";
JSONObject platforms = new JSONObject(platformJsonContent);
System.out.println(platforms.get("os"));
} catch(JSONException ex) {
// do something...
}
}
}
运行并输出“Mac 10.6”
答案 1 :(得分:0)
如果您使用的是JEE7,请查看http://docs.oracle.com/javaee/7/tutorial/doc/jsonp.htm
答案 2 :(得分:0)
假设您决定不使用任何库,这里有一种方法可以获得“os”
//Assuming your jsonString is like this - "\"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\""
Map<String, String> pairs = getJsonMap(jsonString);
pairs.get("os")
这是你如何做getJsonMap()
private Map<String,String> getJsonMap(String jsonString){
String[] eachPair = jsonString.replaceAll("\"", "").split(",");
Map<String,String> pairs = new HashMap<String,String>();
for(String pair: eachPair) {
pairs.put(pair.substring(0, pair.indexOf(":")).trim(), pair.substring(pair.indexOf(":")+1));
}
return pairs;
}
我仍然强烈建议您查看JSON对Java的支持。
答案 3 :(得分:0)
Boon在2014年3月的JVM上拥有最快的JSON解析器,并且它具有切片表示法。
所以.....
鉴于此JSON:
String json = "{\"scout\": \"webdriver\", \"short_version\": \"4.3\", \"long_name\": \"iPad\", \"api_name\": \"ipad\", \n" +
"\n" +
"\"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\"}";
你可以过滤它&#34;像这样:
System.out.println( atIndex( fromJson(json), "os" ) ); //one line of code
输出:
Mac 10.6
您可以在此处详细了解Boon:http://www.dzone.com/links/1091051.html 在这里:http://rick-hightower.blogspot.com/2014/03/boon-filtering-for-java-beans-json-and.html
Boon允许您解析JSON,将Java对象序列化为JSON,依赖注入JSON,将JSON编组到方法调用,将JSON编组到构造函数调用,搜索索引JSON,实际过滤JSON以及排序JSON。如果你能想到你想用JSON做些什么,Boon可能就是这么做的。
https://github.com/RichardHightower/boon
(有一会儿......好像我正在向阿甘正传一个场景。你可以炒虾,烤虾,蒸虾。还有虾浓汤,......)