用于 JSON 的 jQuery

Posted

技术标签:

【中文标题】用于 JSON 的 jQuery【英文标题】:jQuery for JSON 【发布时间】:2020-07-04 13:42:54 【问题描述】:

我们有 JSON 消息,我们正在尝试使用 jQuery (http://www.jsonquerytool.com/) 从 JSON 消息中提取所有标签和值。我们尝试了 "$..[label,value] ,$..['label','value'],$..label,value" 等。但没有成功。你们中的任何人都可以帮我在一个查询中获取标签和值。 JSON 消息:

[
  
    "key": "A",
    "label": "Question 1",
    "value": "Test",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Test"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  ,
  
    "key": "B",
    "label": "Question 2",
    "value": "Ignore",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Ignore"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  
]

【问题讨论】:

查询类型应为:JSON 路径 (dchester 1.0.2) jQuery 和“JSON 查询工具”除了一个巧合的相似名称之外没有任何关系。 好的,但是我用于项目的工具之一与jsonquerytool.com 对齐。 IE;在该浏览器上运行的任何查询都将在我的工具上运行。这就是为什么我给出了这个参考 听起来您确实在寻找 JsonPath。适当的标记将帮助您获得有用的答案。你也没有显示你试图把这些表达式放在哪里的代码。 感谢您的建议。我将标记 JSON 路径。因为,我正在使用机密工具....我无法分享确切的屏幕截图。请无视。仅供参考,$..value 检索了所有值(同样 $..label 检索了所有标签值)。如果可以的话,请帮助我们。谢谢 【参考方案1】:

你可以在http://www.jsonquerytool.com/试试这段代码JSON


"array": [
    
    "key": "A",
    "label": "Question 1",
    "value": "Test",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Test"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  ,
  
    "key": "B",
    "label": "Question 2",
    "value": "Ignore",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Ignore"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  
]

查询类型 = javascript

input.array[1]

然后是这个结果


"key": "B",
"label": "Question 2",
"value": "Ignore",
"tags": [],
"valueType": "TEXT",
"displayValue": [
    "Ignore"
],
"assignedToProcessInput": false,
"confidential": false

【讨论】:

我需要输出标签和值 [input.array[1].label, input.array[1].value] 输出[“问题2”,“忽略”] 感谢您的回复。我需要一些动态的东西。在这里,我们将“1”作为静态参数传递,这在我的场景中没有用。 :(【参考方案2】:

这里有一个使用 map 的解决方案

var json = [
  
    "key": "A",
    "label": "Question 1",
    "value": "Test",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Test"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  ,
  
    "key": "B",
    "label": "Question 2",
    "value": "Ignore",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Ignore"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  
];

json.map(item => 
  console.log(item.label, ": ", item.value );
);

如果你想存储消息,请使用下面的代码

var json = [
  
    "key": "A",
    "label": "Question 1",
    "value": "Test",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Test"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  ,
  
    "key": "B",
    "label": "Question 2",
    "value": "Ignore",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Ignore"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  
];

var msgVal = [];

json.map(item => 
  msg.push(
   label: item.label,
   value: item.value
  );
);

console.log(msg);

更新的解决方案

[
  
    "key": "A",
    "label": "Question 1",
    "value": "Test",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Test"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  ,
  
    "key": "B",
    "label": "Question 2",
    "value": "Ignore",
    "tags": [],
    "valueType": "TEXT",
    "displayValue": [
      "Ignore"
    ],
    "assignedToProcessInput": false,
    "confidential": false
  
]

$..label

【讨论】:

请问您使用的编译器是什么?因为,我需要根据我的问题构建 JQUERY 来获取标签和值。我试图在 JQUERYTOOL 上使用你的代码,但它不起作用。 我使用纯 JavaScript 解决了这个问题,而 jQuery 只不过是一个在 JavaScript 之上编写的框架。你现在遇到什么错误? 我正在使用“jsonquerytool.com”(查询类型:JSON 路径 dchester 1.0.2),它与我的一个产品对齐来编译您的代码。它没有给出任何输出。它只是给出 null(空对象) @RaghuramGuggilam $..label 访问标签 是的,$..label 仅用于检索标签。我想在单个查询中同时检索标签和值。 :(请帮助我,如果可以的话。谢谢

以上是关于用于 JSON 的 jQuery的主要内容,如果未能解决你的问题,请参考以下文章

JQueryJQuery基本操作

JQueryJQuery基础

jQueryjquery插件封装

JQueryjquery完成ajax实例

jQueryjQuery与Ajax的应用

jQueryjquery.metadata.js验证失效