0

我没有。数组/列表项的格式:(我使用的是 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]);
        }

// 过滤器应该在这里

4

4 回答 4

4

使用 JSONObject 或其他方式阅读它可能会更好。

JSONObject platforms = new JSONOBject(platformJsonContent);

platforms.get("os");
#=> "Mac 10.6"

在此处查看更多文档:http: //json.org/javadoc/org/json/JSONObject.html

如果您特别需要它作为一个数组,那么使用 JSONArray 可能会更好,它可以.getJSONArray在解析后使用 JSONObject 上的方法从 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”

于 2013-09-19T09:39:12.867 回答
0

大约 2014 年 3 月,Boon 拥有 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\"}";

您可以像这样“过滤它”:

    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- bean-json-and.html

Boon 允许您解析 JSON,将 Java 对象序列化为 JSON,依赖注入 JSON,将 JSON 编组到方法调用,将 JSON 编组到构造函数调用,搜索索引 JSON,实际过滤 JSON,以及对 JSON 进行排序。如果您能想到想用 JSON 做些什么,Boon 可能会做到。

https://github.com/RichardHightower/boon

(有那么一瞬间……我好像在引导阿甘正传的一个场景。你可以炸虾、烤虾、蒸虾。还有虾秋葵汤,还有……)

于 2014-03-21T08:38:46.907 回答
0

假设您决定不使用任何库,这是获得“操作系统”的一种方法

//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 的支持。

于 2013-09-19T10:24:22.923 回答
0

如果您使用的是 JEE7,请查看http://docs.oracle.com/javaee/7/tutorial/doc/jsonp.htm

于 2013-09-19T09:51:23.363 回答