标签: jsonpath

如何使用JsonPath使用C#示例?

我正在尝试使用JsonPath for .NET(http://code.google.com/p/jsonpath/downloads/list),我无法找到如何解析Json字符串和JsonPath字符串的示例得到一个结果.

有没有人用过这个?

c# jsonpath

17
推荐指数
1
解决办法
2万
查看次数

JSON.NET如何删除节点

我有一个类似以下的json:

{
  "d": {
    "results": [
      {
        "__metadata": {
        },
        "prop1": "value1",
        "prop2": "value2",
        "__some": "value"
      },
      {
        "__metadata": {
        },
        "prop3": "value1",
        "prop4": "value2",
        "__some": "value"
      },
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我只想将这个JSON转换为不同的JSON.我想从JSON中删除" _ metadata"和" _some"节点.我正在使用JSON.NET.

c# json.net jsonpath

17
推荐指数
2
解决办法
2万
查看次数

使用JSONPath提取属性的子集

我有这个JSON代码:

{
    "A": {
        "AB": [{
            "ABA": "0",
            "ABB": "1",
            "ABC": "2"
        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要使用一个JSONPath表达式,该表达式返回仅具有ABA和ABC属性的JSON.就像是:

{
    "A": {
        "AB": [{
            "ABA": "0",
            "ABC": "2"
        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我设法提取一个或所有属性.例如

$.A.AB[*]
Run Code Online (Sandbox Code Playgroud)

要么

$.A.AB[*].ABA
Run Code Online (Sandbox Code Playgroud)

有没有办法只提取两个?

谢谢

json jsonpath

17
推荐指数
1
解决办法
2万
查看次数

如何使用jsonpath列出对象键名?

我使用的NodeJSjsonpath.我有这个json结构:

{
  things:{
    books: [
      {name: "book1"},
      {name: "book2"},
      {name: "book3"},
      {name: "book4"},
    ],
    movies: [
      {name: "movie1"},
      {name: "movie2"},
      {name: "movie3"},
      {name: "movie4"},
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我想知道jsonpath表达式返回一个带有things对象键名的数组.那将是:

["books","movies"]
Run Code Online (Sandbox Code Playgroud)

现在,我这样做:

Object.keys(jsonpath.eval(jsonStructure,"$.things").pop());
Run Code Online (Sandbox Code Playgroud)

但我发现它并不优雅......当我只需要键名时,我不需要复制整个结构.

json jsonpath node.js

15
推荐指数
2
解决办法
6773
查看次数

使用JSONPath和spring mvc断言数组数组

我很难弄清楚如何在spring mvc中的JSON文档响应中使用jsonPath断言.也许有比使用jsonPath更好的方法来完成这个特定的场景.我想验证链接数组是否具有"self"的rel项,而"self"对象的"href"属性也具有等于"/"的"href"属性.JSON响应如下所示:

 {  
   "links":[  
      {  
         "rel":[  
            "self"
         ],
         "href":"/"
      },
      {  
         "rel":[  
            "next"
         ],
         "href":"/1"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我试过这个,我可以看到它有rel [0]有自己,但我宁愿不依赖于链接数组中的位置和自我的rel数组,并实际测试链接中的href是什么[rel] [self]是"/".有任何想法吗?

 @Before
  public void setup() {
    MockitoAnnotations.initMocks(this);
    mockMvc = MockMvcBuilders.standaloneSetup(welcomeController).build();
  }

  @Test
  public void givenRootUrl_thenReturnLinkToSelf() throws Exception {
    mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
        .andExpect(jsonPath("$.links[0].rel[0].", is("self")));
  }
Run Code Online (Sandbox Code Playgroud)

junit spring-mvc jsonpath mockmvc

15
推荐指数
3
解决办法
2万
查看次数

AWS 步骤函数和可选参数

我想为传递给步进函数的参数设置一个默认值

例如,

"Parameters": {
   "foo.$": "$.foo" OR "bar" if "$.foo" not specified
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用 JSONPath 本地做到这一点,还是我必须使用选择+传递状态?

如果在输入中未指定参数时有一种方法不会中断,我什至会选择使用选择/通过。

如果我不包含"foo": ""在输入中,我会收到类似的错误"JSONPath ... could not be found in the input."

jsonpath amazon-web-services aws-step-functions

15
推荐指数
2
解决办法
4820
查看次数

如何使用 kubectl 汇总 Kubernetes 中的所有资源限制和请求?

我开始使用Lens并注意到,当节点内的 Pod 的限制高于实际容量时,它会向您发出一些警告。 Lens 的图形可视化,您可以在其中看到一条警告,告知指定的限制高于节点容量

所以我尝试使用kubectl获取此信息,但我是jsonpath的新手,我只是设法使用如下内容获取原始信息:

kubectl get pods -o=jsonpath='{.items..resources.limits}' -A
Run Code Online (Sandbox Code Playgroud)

这会产生这样的结果:

{"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"512Mi"} {"cpu":"500m","memory":"250Mi"} {"memory":"170Mi"} {"memory":"170Mi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"500m","memory":"600Mi"} {"cpu":"1","memory":"1Gi"} {"cpu":"100m","memory":"25Mi"} {"cpu":"100m","memory":"25Mi"}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,如何总结所有这些值?这些值是否准确,或者我是否遗漏了任何其他查询?我已经使用 LimitRange 检查过,得到的值似乎是正确的,结果包括 LimitRange 配置设置的限制。

jsonpath kubernetes kubectl

15
推荐指数
2
解决办法
4万
查看次数

JsonPath NoClassDefFoundError,或Java中JsonPath的替代

由于与我正在处理的项目相关的原因,我希望将JSON文件的整个查询保存为字符串,例如,$.store.book[*].title(而不是必须将文档的每个级别临时存储为单独的对象) .

我目前正在使用JsonPath(版本0.8.0,这是我能找到的最新版本),这基本上正是我正在寻找的,但我得到的例外情况如下所示.我只是使用JsonPath谷歌代码页上给出的示例JSON,使用他们的一个示例查询.

我在这做错了什么?或者,如果没有解决方案,Java中是否有JsonPath的替代方案?我希望能够将整个查询作为字符串传递,并且它必须是Java.

功能:

public void testJsonPath() throws Exception
{
    String query = "$.store.book[*].title";
    List toRet = (List) JsonPath.read(practiceJson, query, new Filter[0]);
    System.out.println(toRet.toString());
}
Run Code Online (Sandbox Code Playgroud)

例外:

java.lang.NoClassDefFoundError: net/minidev/json/parser/ParseException
at com.jayway.jsonpath.spi.JsonProviderFactory$1.create(JsonProviderFactory.java:27)
at com.jayway.jsonpath.spi.JsonProviderFactory.createProvider(JsonProviderFactory.java:32)
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:202)
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:307)
at net.windward.datasource.test.TestJsonDataSource.testJsonPath(TestJsonDataSource.java:119)
Run Code Online (Sandbox Code Playgroud)

练习JSON:

private String practiceJson = "{\n" +
        "    \"store\": {\n" +
        "        \"book\": [ {\n" +
        "            \"category\": \"reference\",\n" +
        "            \"author\": \"Nigel Rees\",\n" +
        "            \"title\": \"Sayings of the Century\",\n" +
        "            \"price\": 8.95\n" +
        "        }, {\n" + …
Run Code Online (Sandbox Code Playgroud)

java json jsonpath

14
推荐指数
2
解决办法
3万
查看次数

如何在Presto中的嵌套json数组对象中提取键?

我正在使用最新的(0.117)Presto并试图用这样复杂的JSON数组执行CROSS JOIN UNNEST.

[{"id": 1, "value":"xxx"}, {"id":2, "value":"yy"}, ...]
Run Code Online (Sandbox Code Playgroud)

为此,首先我尝试使用id by 的值创建一个ARRAY

SELECT CAST(JSON_EXTRACT('[{"id": 1, "value":"xxx"}, {"id":2, "value":"yy"}]', '$..id') AS ARRAY<BIGINT>)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

提取id值的最佳JSON路径是什么?

jsonpath presto

14
推荐指数
3
解决办法
2万
查看次数

如何使用MockMvcResultMatchers.jsonPath

MvcResult result = this.mockMvc.perform(
                MockMvcRequestBuilders.get(mockUrl))
                .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.content().contentType("application/    json;charset=UTF-8"))
                .andDo(MockMvcResultHandlers.print())
Run Code Online (Sandbox Code Playgroud)

给我以下内容:

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Type=[application/json;charset=UTF-8]}
     Content type = application/json;charset=UTF-8
             Body = {"version":"0.1"}
    Forwarded URL = null
   Redirected URL = null
          Cookies = []
Run Code Online (Sandbox Code Playgroud)

但是,测试它

MvcResult result = this.mockMvc.perform(
                MockMvcRequestBuilders.get(mockUrl))
                .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.content().contentType("application/    json;charset=UTF-8"))
                .andExpect(jsonPath("$.version").value("0.1"))
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

java.lang.AssertionError: No value at JSON path "$.version", exception: net/minidev/json/writer/JsonReaderI

at org.springframework.test.util.JsonPathExpectationsHelper.evaluateJsonPath(JsonPathExpectationsHelper.java:245)
at org.springframework.test.util.JsonPathExpectationsHelper.assertValue(JsonPathExpectationsHelper.java:99)
at org.springframework.test.web.servlet.result.JsonPathResultMatchers$2.match(JsonPathResultMatchers.java:99)
at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:171)
at com.vmware.skyscraper.rts.runbooks.RunbookControllerTest.testGetSingleRunbook(RunbookControllerTest.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mockito jsonpath

14
推荐指数
2
解决办法
4万
查看次数