java类com.alibaba.fastjson.JSONPath的实例源码

JSONPath_deepScan_test2.java 文件源码 项目:GitHub 阅读 38 收藏 0 点赞 0 评论 0
@SuppressWarnings({"unchecked" })
public void test_0() throws Exception {

    Root root = new Root();
    root.company = new Company();
    root.company.departs.add(new Department(1001));
    root.company.departs.add(new Department(1002));
    root.company.departs.add(new Department(1003));


    List<Object> ids = (List<Object>) JSONPath.eval(root, "$..id");
    Assert.assertEquals(3, ids.size());
    Assert.assertEquals(1001, ids.get(0));
    Assert.assertEquals(1002, ids.get(1));
    Assert.assertEquals(1003, ids.get(2));
}
JSONPath_paths_test4.java 文件源码 项目:GitHub 阅读 37 收藏 0 点赞 0 评论 0
public void test_map() throws Exception {
    List<Object> list = new ArrayList<Object>();
    list.add(1001);
    list.add("wenshao");

    list.add(Collections.singletonMap("type", "emp"));

    Map<String, Object> paths = JSONPath.paths(list);

    Assert.assertEquals(5, paths.size());
    Assert.assertSame(list, paths.get("/"));
    Assert.assertEquals(1001, paths.get("/0"));
    Assert.assertEquals("wenshao", paths.get("/1"));
    Assert.assertSame(list.get(2), paths.get("/2"));
    Assert.assertSame(((Map)list.get(2)).get("type"), paths.get("/2/type"));
}
DeepScanTest.java 文件源码 项目:GitHub 阅读 31 收藏 0 点赞 0 评论 0
public void test_when_deep_scanning_illegal_property_access_is_ignored() {
    Object result = JSONPath.eval(
            JSON.parseObject("{\"x\": {\"foo\": {\"bar\": 4}}, \"y\": {\"foo\": 1}}")
            , "$..foo");
    assertEquals(2, ((List) result).size());

    result = JSONPath.eval(
            JSON.parseObject("{\"x\": {\"foo\": {\"bar\": 4}}, \"y\": {\"foo\": 1}}")
            , "$..foo.bar");
    assertEquals(1, ((List) result).size());
    assertEquals(4, ((List) result).get(0));

    result = JSONPath.eval(
            JSON.parseObject("{\"x\": {\"foo\": {\"bar\": 4}}, \"y\": {\"foo\": 1}}")
            , "$..[*].foo.bar");
    assertEquals(1, ((List) result).size());
    assertEquals(4, ((List) result).get(0));

    result = JSONPath.eval(
            JSON.parseObject("{\"x\": {\"foo\": {\"baz\": 4}}, \"y\": {\"foo\": 1}}")
            , "$..[*].foo.bar");
    assertTrue(((List) result).isEmpty());
}
JSONPath_deepScan_test.java 文件源码 项目:GitHub 阅读 32 收藏 0 点赞 0 评论 0
@SuppressWarnings({ "rawtypes", "unchecked" })
public void test_0() throws Exception {
    Map root = Collections.singletonMap("company", //
                                        Collections.singletonMap("departs", //
                                                                 Arrays.asList( //
                                                                                Collections.singletonMap("id",
                                                                                                         1001), //
                                                                                Collections.singletonMap("id",
                                                                                                         1002), //
                                                                                Collections.singletonMap("id", 1003) //
                                                                 ) //
                                        ));

    List<Object> ids = (List<Object>) JSONPath.eval(root, "$..id");
    Assert.assertEquals(3, ids.size());
    Assert.assertEquals(1001, ids.get(0));
    Assert.assertEquals(1002, ids.get(1));
    Assert.assertEquals(1003, ids.get(2));
}
JSONPath_list_range.java 文件源码 项目:GitHub 阅读 36 收藏 0 点赞 0 评论 0
public void test_range() throws Exception {
    List list = new ArrayList();
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    list.add(new Object());
    JSONPath path = new JSONPath("$[2:4]");
    List<Object> result = (List<Object>) path.eval(list);
    Assert.assertEquals(3, result.size());
    Assert.assertSame(list.get(2), result.get(0));
    Assert.assertSame(list.get(3), result.get(1));
    Assert.assertSame(list.get(4), result.get(2));
}
JSONPath_calenar_test.java 文件源码 项目:GitHub 阅读 35 收藏 0 点赞 0 评论 0
public void test_map() throws Exception {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, 2017);
    calendar.set(Calendar.MONTH, 6);
    calendar.set(Calendar.DAY_OF_MONTH, 30);

    calendar.set(Calendar.HOUR_OF_DAY, 16);
    calendar.set(Calendar.MINUTE, 8);
    calendar.set(Calendar.SECOND, 43);

    assertEquals(2017, JSONPath.eval(calendar, "/year"));
    assertEquals(6, JSONPath.eval(calendar, "/month"));
    assertEquals(30, JSONPath.eval(calendar, "/day"));

    assertEquals(16, JSONPath.eval(calendar, "/hour"));
    assertEquals(8, JSONPath.eval(calendar, "/minute"));
    assertEquals(43, JSONPath.eval(calendar, "/second"));


}
JSONPath_field_access_filter_in_int.java 文件源码 项目:GitHub 阅读 34 收藏 0 点赞 0 评论 0
public void test_list_not_in_null() throws Exception {
    JSONPath path = new JSONPath("[id not in (null)]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(1004, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(4, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
    Assert.assertSame(entities.get(1), result.get(1));
    Assert.assertSame(entities.get(2), result.get(2));
    Assert.assertSame(entities.get(3), result.get(3));
}
Issue1445.java 文件源码 项目:GitHub 阅读 35 收藏 0 点赞 0 评论 0
public void test_for_issue() throws Exception {

        JSONObject obj = new JSONObject();
        obj.put("data", new JSONObject());
        obj.getJSONObject("data").put("data", new JSONObject());
        obj.getJSONObject("data").getJSONObject("data").put("map", new JSONObject());
        obj.getJSONObject("data").getJSONObject("data").getJSONObject("map").put("21160001", "abc");

        String json = JSON.toJSONString(obj);
        assertEquals("abc", JSONPath.read(json,"data.data.map.21160001"));
    }
Issue1177_3.java 文件源码 项目:GitHub 阅读 39 收藏 0 点赞 0 评论 0
public void test_for_issue() throws Exception {
    String text = "[{\"x\":\"y\"},{\"x\":\"y\"}]";
    List<Model> jsonObject = JSONObject.parseObject(text, new TypeReference<List<Model>>(){});
    System.out.println(JSON.toJSONString(jsonObject));
    String jsonpath = "$..x";
    String value="y2";
    JSONPath.set(jsonObject, jsonpath, value);
    assertEquals("[{\"x\":\"y2\"},{\"x\":\"y2\"}]", JSON.toJSONString(jsonObject));

}
JSONPath_field_access_filter_in_int.java 文件源码 项目:GitHub 阅读 42 收藏 0 点赞 0 评论 0
public void test_list_in_3_null() throws Exception {
    JSONPath path = new JSONPath("[id in (1001, 1003, null)]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(3, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
    Assert.assertSame(entities.get(2), result.get(1));
    Assert.assertSame(entities.get(3), result.get(2));
}
TestSpecial_1.java 文件源码 项目:GitHub 阅读 34 收藏 0 点赞 0 评论 0
public void test_special() throws Exception {
    String x = "{\"10.0.0.1\":{\"region\":\"xxx\"}}";
    Object o = JSON.parse(x);
    Assert.assertTrue(JSONPath.contains(o, "$.10\\.0\\.0\\.1"));
    Assert.assertEquals("{\"region\":\"xxx\"}", JSONPath.eval(o, "$.10\\.0\\.0\\.1").toString());
    Assert.assertTrue(JSONPath.contains(o, "$.10\\.0\\.0\\.1.region"));
    Assert.assertEquals("xxx", JSONPath.eval(o, "$.10\\.0\\.0\\.1.region"));
}
JSONPath_field_access_filter_in_int.java 文件源码 项目:GitHub 阅读 43 收藏 0 点赞 0 评论 0
public void test_list_in_2() throws Exception {
    JSONPath path = new JSONPath("[id in (1001, 1003)]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(1004, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(2, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
    Assert.assertSame(entities.get(2), result.get(1));
}
JSONPath_paths_test3.java 文件源码 项目:GitHub 阅读 36 收藏 0 点赞 0 评论 0
public void test_map() throws Exception {
    Model model = new Model();
    model.id = 1001;
    model.name = "wenshao";
    model.attributes.put("type", "employee");

    Map<String, Object> paths = JSONPath.paths(model);

    Assert.assertEquals(5, paths.size());
    Assert.assertSame(model, paths.get("/"));
    Assert.assertEquals(1001, paths.get("/id"));
    Assert.assertEquals("wenshao", paths.get("/name"));
    Assert.assertSame(model.attributes, paths.get("/attributes"));
    Assert.assertEquals("employee", paths.get("/attributes/type"));
}
JSONPath_paths_test1.java 文件源码 项目:GitHub 阅读 43 收藏 0 点赞 0 评论 0
public void test_map() throws Exception {
    List<Object> list = new ArrayList<Object>();
    list.add(1001);
    list.add("wenshao");


    Map<String, Object> paths = JSONPath.paths(list);

    Assert.assertEquals(3, paths.size());
    Assert.assertSame(list, paths.get("/"));
    Assert.assertEquals(1001, paths.get("/0"));
    Assert.assertEquals("wenshao", paths.get("/1"));
}
JSONPath_paths_test5.java 文件源码 项目:GitHub 阅读 31 收藏 0 点赞 0 评论 0
public void test_array() throws Exception {
    String[] array = new String[]{"1001", "wenshao"};

    Map<String, Object> paths = JSONPath.paths(array);

    Assert.assertEquals(3, paths.size());
    Assert.assertSame(array, paths.get("/"));
    Assert.assertEquals("1001", paths.get("/0"));
    Assert.assertEquals("wenshao", paths.get("/1"));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 34 收藏 0 点赞 0 评论 0
public void test_list_like_extract() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name like 'ljw2083')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, null));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 41 收藏 0 点赞 0 评论 0
public void test_list_not_like_extract() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name not like 'ljw2083')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(3, result.size());
    Assert.assertSame(entities.get(1), result.get(0));
    Assert.assertSame(entities.get(2), result.get(1));
    Assert.assertSame(entities.get(3), result.get(2));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 44 收藏 0 点赞 0 评论 0
public void test_list_like_left_match() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name like 'ljw%')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 47 收藏 0 点赞 0 评论 0
public void test_list_like_right_match() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name like '%2083')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 39 收藏 0 点赞 0 评论 0
public void test_list_like_contains() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name like '%208%')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}
JSONPath_field_access_filter_like_simple.java 文件源码 项目:GitHub 阅读 38 收藏 0 点赞 0 评论 0
public void test_list_like_right_not_match() throws Exception {
    JSONPath path = new JSONPath("$[name not like '%2083']");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(2, result.size());
    Assert.assertSame(entities.get(1), result.get(0));
    Assert.assertSame(entities.get(2), result.get(1));
}
JSONPath_field_access_filter_like.java 文件源码 项目:GitHub 阅读 35 收藏 0 点赞 0 评论 0
public void test_list_like_match_two_segement_2() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name like 'ljw%w2083')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, "yakolee"));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(0, result.size());
}
JSONPath_field_access_filter_rlike.java 文件源码 项目:GitHub 阅读 40 收藏 0 点赞 0 评论 0
public void test_list_like_extract() throws Exception {
    JSONPath path = new JSONPath("$[name rlike 'ljw2083']");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, null));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}
JSONPath_toString.java 文件源码 项目:GitHub 阅读 34 收藏 0 点赞 0 评论 0
public void test_toJSONString() throws Exception {
    Model model = new Model();
    model.path = new JSONPath("$");
    String text = JSON.toJSONString(model);
    Assert.assertEquals("{\"path\":\"$\"}", text);

    JSON.parseObject(text, Model.class);
}
JSONPath_containsValue_biginteger.java 文件源码 项目:GitHub 阅读 50 收藏 0 点赞 0 评论 0
public void test_root() throws Exception {
    Model model = new Model();
    model.value = new BigInteger("1001");

    Assert.assertTrue(JSONPath.containsValue(model, "/value", 1001));
    Assert.assertTrue(JSONPath.containsValue(model, "/value", 1001L));
    Assert.assertTrue(JSONPath.containsValue(model, "/value", (short) 1001));

    Assert.assertFalse(JSONPath.containsValue(model, "/value", 1002));
    Assert.assertFalse(JSONPath.containsValue(model, "/value", 1002L));
    Assert.assertFalse(JSONPath.containsValue(model, "/value", (short) 1002));
}
JSONPath_1.java 文件源码 项目:GitHub 阅读 38 收藏 0 点赞 0 评论 0
public void test_path_empty() throws Exception {
    Throwable error = null;
    try {
        JSONPath.compile("");
    } catch (JSONPathException ex) {
        error = ex;
    }
    Assert.assertNotNull(error);
}
JSONPath_array_put.java 文件源码 项目:GitHub 阅读 30 收藏 0 点赞 0 评论 0
public void test_put_array_error_1() throws Exception {
    Exception error = null;
    try {
        JSONPath path = new JSONPath("$.values");
        path.arrayAdd(Collections.singletonMap("values", new Object()), 123);
    } catch (JSONException ex) {
        error = ex;
    }
    Assert.assertNotNull(error);
}
JSONPath_list_size_3.java 文件源码 项目:GitHub 阅读 32 收藏 0 点赞 0 评论 0
public void test_java_bean_field_null() throws Exception {
    Model model = new Model();
    model.id = 1001;
    model.name = null;
    JSONPath path = new JSONPath("$.size()");
    Integer result = (Integer) path.eval(model);
    Assert.assertEquals(1, result.intValue());
}
JSONPath_field_access_filter_compare_int.java 文件源码 项目:GitHub 阅读 30 收藏 0 点赞 0 评论 0
public void test_list_map_le() throws Exception {
    JSONPath path = new JSONPath("$[?(@.id <= 1002)]");

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(2, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
    Assert.assertSame(entities.get(1), result.get(1));
}
JSONPath_field_access_filter_compare_string.java 文件源码 项目:GitHub 阅读 31 收藏 0 点赞 0 评论 0
public void test_list_eq() throws Exception {
    JSONPath path = new JSONPath("$[?(@.name = 'ljw2083')]");

    List<Entity> entities = new ArrayList<Entity>();
    entities.add(new Entity(1001, "ljw2083"));
    entities.add(new Entity(1002, "wenshao"));
    entities.add(new Entity(1003, null));
    entities.add(new Entity(null, null));

    List<Object> result = (List<Object>) path.eval(entities);
    Assert.assertEquals(1, result.size());
    Assert.assertSame(entities.get(0), result.get(0));
}


问题


面经


文章

微信
公众号

扫码关注公众号