【问题标题】:Parsing and extract JSON data解析和提取 JSON 数据
【发布时间】:2018-07-20 09:53:28
【问题描述】:


需要以下 JSON 的一些指导,我正在尝试提取 characterID,我应该如何去做?

提前致谢,

我设想的 JSON 输出是,

 "data2": {
         "characterId1": "2305843009261174417",
         "characterId2": "2305843009261174418",
         "characterId3": "2305843009283296434"

         }

JSON 如下:

{
  "characters": {
    "data": {
      "2305843009261174417": {
        "membershipId": "4611686018445971568",
        "membershipType": 2,
        "characterId": "2305843009261174417"

        }

      },
      "2305843009261174418": {
        "membershipId": "4611686018445971568",
        "membershipType": 2,
        "characterId": "2305843009261174418"

        }

      },
      "2305843009283296434": {
        "membershipId": "4611686018445971568",
        "membershipType": 2,
        "characterId": "2305843009283296434"

        }


      }

}

【问题讨论】:

  • 请编辑您的问题并编写您拥有的 JSON 数据和您的预期输出
  • '没有从字符串到整数的隐式转换'。您收到此错误是因为关键变量是字符串,并且您将此字符串作为整数定义的参数。

标签: ruby-on-rails json


【解决方案1】:

我认为你必须先规范化你的参数,因为目前是

{
  "characters": {
    "data": {
      "2305843009261174417": {
        "membershipId": "4611686018445971568",
        "membershipType": 2,
        "characterId": "2305843009261174417"
      }
    },
    "2305843009261174418": {
      "membershipId": "4611686018445971568",
      "membershipType": 2,
      "characterId": "2305843009261174418"
    }
  },
  "2305843009283296434": {
    "membershipId": "4611686018445971568",
    "membershipType": 2,
    "characterId": "2305843009283296434"
  }
}
}

而你的预期输出是错误的,你不能在 Hash 中拥有相同的键

"data2": {
  "characterId": "2305843009261174417",
  "characterId": "2305843009261174418",
  "characterId": "2305843009283296434"
}

看,data2键有三个characterId键

【讨论】:

  • 是的,您是对的,已编辑。应该是 characterId1、2 和 3。
  • 检查我上面的更新答案,我重新格式化了你的 JSON 输入,使其更具可读性,它不是有效的 JSON,行尾有右括号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2018-10-08
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多