【问题标题】:I need to take the inner contents of the JSON response [closed]我需要获取 JSON 响应的内部内容 [关闭]
【发布时间】:2017-09-11 08:19:51
【问题描述】:

我有以下代码从服务器检索 JSON 响应,它工作正常。

Javascript 代码:

$http({
    method: 'POST',
    url: 'http://***SOMEURL',
    headers: { 'Content-Type': 'application/json', 'Accept': 'application/json'},
    data: JSON.stringify(data)   
})
.then(function (response) {
    $scope.myData = response.data;
    $scope.myData1=response.data.message.connectionDetailses;
});

反应是

{
    "code": 100,
    "message": {
        "id": 29020,
        "customerCode": "730",
        "name": "John P. M.    168",
        "lastName": "X",
        "houseName": "Hosuseahjkahsh",
        "address1": "1",
        "address2": "x",
        "address3": "wehwhkjwh P. O.",
        "postalCode": "686011",
        "email": "11@11.com",
        "phone": "1234567890",
        "mobile": "1234567890",
        "operatorName": "abcd ",
        "connectionDetailses": [
            {
                "customerCode": "730",
                "accountId": 5,
                "dueAmount": 0,
                "connectionId": 27203,
                "accountName": "M S"
            },
            {
                "customerCode": "730",
                "accountId": 5,
                "dueAmount": 2000,
                "connectionId": 116303,
                "accountName": "MS"
            },
            {
                "customerCode": "730",
                "accountId": 9,
                "dueAmount": 0,
                "connectionId": 116303,
                "accountName": "Connection"
            },
            {
                "customerCode": "730",
                "accountId": 14,
                "dueAmount": 0,
                "connectionId": 116303,
                "accountName": "Amc"
            }
        ]
    }
}

我需要根据 connectionId 打印连接详细信息。我可以一次打印所有连接详细信息。但我需要在一个块内打印详细信息。

{
                "customerCode": "730",
                "accountId": 9,
                "dueAmount": 0,
                "connectionId": 116303,
                "accountName": "Connection"
}

【问题讨论】:

  • 欢迎来到 SO。该站点不是代码编写服务,也不旨在提供完整的解决方案。当 SO 在这里帮助您解决特定的编程问题时,用户应该表现出一些努力和代码。你已经尝试过什么了吗?

标签: javascript angularjs json spring


【解决方案1】:

给定一个connectionId,您可以通过以下方式打印相应的连接详细信息:

let connectionId = 116303
let connectionDetail = response.data.message.connectionDetailses.find(det => det.connectionId === connectionId);
console.log(connectionDetail);

如果你想基于同一个 id 获取所有细节,你可以使用 array.filter:

let connectionId = 116303
let connectionDetails = response.data.message.connectionDetailses.filter(det => det.connectionId === connectionId);
console.log(connectionDetails);

【讨论】:

  • 但是我在 id 116303 上有 3 个连接。如何根据相同的 id 获取所有 3 个详细信息?
  • 我已经更新了答案
  • 如何从选择的详细信息中计算dueAmount的总和?
  • 你可以只使用array.reduce: var dueAmountSum = connectionDetails.reduce((total, det) => (total + det.dueAmount), 0);
【解决方案2】:

我想,您可以使用Array#filter 仅过滤具有所需ID 的连接。类似:

const details = response.data.message.connectionDetailses
  .filter(connection => connection.connectionId === 116303)[0]

【讨论】:

  • 感谢您的建议。但仍然无法正常工作。 :(
猜你喜欢
  • 1970-01-01
  • 2011-01-21
  • 2014-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
  • 2012-12-04
相关资源
最近更新 更多