数据源:
{
"status": 1,
"data": {
"tierpricing": [
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "3", "product_name_en": "product 3" },
{ "product_id": "3", "product_name_en": "product 3" },
{ "product_id": "3", "product_name_en": "product 3" }
]
}
}
使用以下方法按产品名称进行分组:
var tierprice = data.data.tierpricing.reduce(function(result, current) {
result[current.product_name_en] = result[current.product_name_en] || [];
result[current.product_name_en].push(current);
return result;
}, {});
用这个来获取所有的产品
for (var key of Object.keys(tierprice)) {
item = {}
item ["product_name_en"] = key;
tierproducts.push(item);
}
console.log(tierproducts);
显示:
[ { product_name_en: "product 1" },
{ product_name_en: "product 2" },
{ product_name_en: "product 3" } ]
我所寻求的是:
[ { product_name_en: "product 1", product_id: "1" },
{ product_name_en: "product 2", product_id: "2" },
{ product_name_en: "product 3", product_id: "3"} ]
您可以生成一个由PRODUCT_NAME_EN
和PRODUCT_ID
组成的用于分组的键,然后在生成最终结果集时拆分该键,例如:
let key = `${current.product_name_en}_${current.product_id}`
和:
let [product_name_en, product_id] = key.split('_');
null
var data = {
"status": 1,
"data": {
"tierpricing": [{
"product_id": "1",
"product_name_en": "product 1"
}, {
"product_id": "1",
"product_name_en": "product 1"
}, {
"product_id": "1",
"product_name_en": "product 1"
}, {
"product_id": "1",
"product_name_en": "product 1"
}, {
"product_id": "2",
"product_name_en": "product 2"
}, {
"product_id": "2",
"product_name_en": "product 2"
}, {
"product_id": "2",
"product_name_en": "product 2"
}, {
"product_id": "3",
"product_name_en": "product 3"
}, {
"product_id": "3",
"product_name_en": "product 3"
}, {
"product_id": "3",
"product_name_en": "product 3"
}]
}
};
var tierproducts = [];
var tierprice = data.data.tierpricing.reduce(function(result, current) {
let key = `${current.product_name_en}_${current.product_id}`;
result[key] = result[key] || [];
result[key].push(current);
return result;
}, {});
for (var key of Object.keys(tierprice)) {
item = {}
let [product_name_en, product_id] = key.split('_');
item ["product_name_en"] = product_name_en;
item ["product_id"] = product_id;
tierproducts.push(item);
}
console.log(tierproducts);
问题内容: 我正在寻找遍历JSON数组并显示键和值的方法。 我还看到了使用jQuery在JSON中获取键/值对中键的名称但对于一个简单的活动,它似乎也需要很多代码。 这说明了我在寻找什么(但它不起作用): 没有强制性的jQuery要求,但可以使用。如果它减少了所需的代码,我还可以重组JSON。 问题答案: 您有一个表示JSON序列化JavaScript对象的字符串。您需要先将其反序列化回JavaS
我正在尝试向后端发送一个JSON对象。基本上,我要做的是获得两个文本字段的输入,然后是所有选定文本框的列表。我的javascript代码如下所示: 我还不是javascript方面的专家,但从我在其他Anwer和帖子中发现的情况来看,这是我可以组合起来的,我认为它实际上可以工作。后端部分工作正常,正如我用PostMan测试的那样,非常正常。这就是JSON,我;我是邮递员寄来的,看起来像: Java
问题内容: 我正在使用json对象返回一个结果数组,并且试图使用我的customObjectResponse类拉出每个对象中的每个字段…这是一个对象的问题,所以我该如何编辑我的类为了允许它接受一个对象数组,然后能够调用每个对象的字段…我对需要添加的内容感到困惑: 这是正在使用的响应示例: 这是我的响应对象类: 我正在尝试但不起作用的内容,即使我将这些类分为各自的文件也是如此: 问题答案: 我最终只
我有对象要按文档ID分组。分组后,我想获得它们的“最大值”。这就是我目前掌握的: 文档类: 重要的是,我已经实现了一个compareTo函数。我不确定在< code>groupingBy子句的< code>reducer参数中放什么。我也试过: 但无济于事。
我有一个如下面示例所示的Json主体。我需要从一个键中提取值,该键在数组中有另一个具有特定值的键。我在传递一个JSONode,其中包含消息的细节组件中的所有内容,我可以很容易地从每个级别提取,但是,我在处理数组时遇到了困难。 在本例中,我需要从数组中的对象中提取值“value”(警察/消防/事故报告),该对象具有一个键/值对“name”:“documenttitle”。我知道这是一个JSONArr
问题内容: 使用该包可以很容易地解析如下对象。 我面临的问题是从服务器返回多个命令,如下所示: 无法使用以下代码进行解析。 我正在尝试解析Common Crawl数据(请参阅示例)。 我怎样才能做到这一点? 问题答案: 假设您的输入确实是一系列有效的JSON文档,请使用json.Decoder对其进行解码: 游乐场:https://play.golang.org/p/ANx8MoMC0yq 如果您
我希望在每个数组中获取多个对象,但我的代码显示了单个对象的操作。下面是我的PHP代码,我如何添加另一个循环来获取多个对象 这是显示单个物体的结果
我从服务器收到json格式的响应,方法是使用restAsaud使用java点击post Request。 现在我想获取名为“freebies”的子json对象。如何执行此操作,因为在写入时: 我得到了stackoverFlow错误。 请帮帮忙。