【问题标题】:How to append integer value to JSON object如何将整数值附加到 JSON 对象
【发布时间】:2020-02-04 15:31:10
【问题描述】:

我使用 AJAX 请求来获取我们系统的商店名称。在那里我使用了 api,它的响应是这样的

"[{\"count\":2,\"seller_id_1\":\"1207\",\"title_1\":\"PRIMA CEYLON PVT
LTD\",\"url_1\":\"prima-ceylon-pvt-ltd\",\"seller_id_2\":\"6509\",\"title_2\":\"Prima
Management Services (Pvt)
Ltd\",\"url_2\":\"prima-management-services-pvt-ltd\"}]"

使用数据响应对象的第 0 个元素检索数据。

如果响应得到 10 个结果(我的意思是我的响应计数),结果会为 title 、 url 和 Seller_id 生成 10 个键值。

结果如下

title_1: url_1 卖家id_1:

title_2: url_2 卖家id_2:

当数据捕获时,我必须对这些东西进行硬编码。所以有任何机制来增加键值而不是硬编码。

我需要按如下方式获取值

json[0].title_1  

json[0].url_1

json[0].title_2  

json[0].url_2

谢谢

【问题讨论】:

  • 您可以使用['title', 'url', seller'].for_each(prefix => ... 和普通的for (let i = 0; i < 10; i++) 来生成密钥``` `${prefix}_${i}` ```。

标签: javascript jquery json ajax magento


【解决方案1】:

您可以将值作为变量值的数组构建一个对象。

result[title][0] --> 将是 title_1
result[title][1] --> 将是title_2

类似的其他值

const [data] = JSON.parse(
  '[{"count":2,"seller_id_1":"1207","title_1":"PRIMA CEYLON PVTLTD","url_1":"prima-ceylon-pvt-ltd","seller_id_2":"6509","title_2":"Prima Management Services (Pvt)Ltd","url_2":"prima-management-services-pvt-ltd"}]'
);


const result = {
  'seller_id': [], 'title': [], 'url': []
};

for (let i = 1; i <= data.count; i++) {
  Object.keys(result).forEach(key => result[key].push(data[`${key}_${i}`]));
}

console.log(result);

【讨论】:

    【解决方案2】:

    var json = JSON.parse(
      '[{"count":2,"seller_id_1":"1207","title_1":"PRIMA CEYLON PVTLTD","url_1":"prima-ceylon-pvt-ltd","seller_id_2":"6509","title_2":"Prima Management Services (Pvt)Ltd","url_2":"prima-management-services-pvt-ltd"}]'
    );
    
    var i = 1;
    var response_count = json[0].count;
    
      for (i = 1; i <= response_count; i++) {
        
        console.log(json[0]['url_' + i]);
    
      }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多