当前位置: 首页 > 知识库问答 >
问题:

设置特定的JSONPATH元素值

沈俊明
2023-03-14

我试图从以下JSON文本中设置作者值,但我的代码正在删除json文本的所有其他子级。

   {
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "XXXXXXXXXXXXXXXXX",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": XXXXXXXXXXXXXXXXXXXXX
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}

我尝试将第一本书中的作者更新为以下其他值。

Object updatedJson = JsonPath.using(configuration).parse(jsonInput).json();
String jayPath = "$..book[0].author";
String tagValue = "ReplacedText";
                String jsonToParse = updatedJson.toString();
                updatedJson = JsonPath.parse(jsonToParse).set(jayPath, tagValue).json();

设置步骤后,我的json只有书[1]的内容,如下所示。请告知如何才能获得我用替换值作为输出给出的整个json输入。

{store={book=[{"category"=reference, author=XXXXXXXXXXXXXXXXX, title=Sayings of the Century, price=8.95}

问候,萨蒂什。

共有1个答案

应翰飞
2023-03-14

无需将 DocumentContext 转换为 json 即可正常工作

public static void main(String[] args) {
    DocumentContext json = JsonPath.using(configuration).parse(jsonInput);
    String jayPath = "$..book[0].author";
    String tagValue = "ReplacedText";
    System.out.println(json.set(jayPath, tagValue).jsonString());
}
 类似资料:
  • 使用以下json: 当请求id A时,返回值1的jsonpath是什么? 根据https://stackoverflow.com/a/47576707我可以检索包含以下内容的ids元素: or 与结果: 但是我想访问它的兄弟姐妹的值()。 提前谢谢!

  • 问题内容: 摆弄相关代码:http : //jsfiddle.net/gFCzV/7/ 我试图设置绑定到ng-repeat中引用的对象的子级集合的下拉列表的选定值。我不知道如何设置选定的选项,因为我无法以任何我知道的方式引用它所绑定的集合。 HTML : JS : 这是我实际上应该在模型上将ng-init与SelectedIndex一起使用的一种情况吗? 问题答案: 如果使用AngularJS 1

  • 我有如下HTML结构: 我使用Selenium,需要通过使用XPath搜索这个唯一值来指向唯一值旁边的td。 我找到了解决方法:找到需要唯一值的tr,然后计算td的前一个兄弟,使用position()=count(前一个兄弟)+2 有更简单的方法吗?问题是表的结构可能会随着时间的变化而变化,但是所需的值总是紧挨着唯一的

  • 我能够在等式(1)中一个接一个地获得所有细节。 在示例中: 在HTML表格中,当我做等式(0)时,我得到GK,NS,PS。当我做等式(1)时,我得到99 88 55。 有没有一种方法可以让我使用JSOUP作为 现在我得到了两个不同的字符串数组。

  • 问题内容: jQuery中是否有一种方法可以选择位于特定位置的元素? 例如,我可以选择绝对位置位于left:100和top:300的元素吗? 如果可以选择一个位置范围内的元素,那就太好了,例如,选择位于左侧的元素:100-150 px顶部200-280 px。 问题答案: 您正在寻找JavaScript / DOM方法。 返回一个,当然可以将其包装到jQuery对象中: 我不太了解跨浏览器的兼容性

  • 我需要从这个JSON中获取所有值作为数组,并放心 这是示例JSON 使用jsonpath提取器,它是 但我需要放心地提取路径 但是它不起作用,我怎么写JSON路径来得到需要的数组呢?