Я не могу получить внутреннее значение объекта JSON - PullRequest
1 голос
/ 17 мая 2019

Я не могу получить значение внутреннего вложенного ключа этого объекта json (он получает ответ от нашего вызова API, я только копирую ответ от каратэ)


[
  {
    "code": 200,
    "result": "[{\"distinct\":false,\"operatetime\":\"2019-05-17 17:01:01\",\"personid\":\"e8edec61-fd1a-4c69-8b60-fb8d21d06095\",\"sampleid\":\"1c9410cd-608d-4eb1-8d12-c8f2faf7fca4\"}]"
  }
]
And def tempreponse = [{"code":200,"result":"[{\"distinct\":false,\"operatetime\":\"2019-05-17 17:01:01\",\"personid\":\"e8edec61-fd1a-4c69-8b60-fb8d21d06095\",\"sampleid\":\"1c9410cd-608d-4eb1-8d12-c8f2faf7fca4\"}]"}]

И def temp1 = tempreponse [0] .result <- это предложение работает И def temp1 = tempreponse [0] .result [0] <- однако, это не работает, печать temp1 пуста </p>

На самом деле мне нужно получить значения personid и sampleid, но не удалось

1 Ответ

1 голос
/ 17 мая 2019

Да, ваш ответ выглядит действительно неправильно, строка в JSON и все. Но даже если это ожидаемый ответ, каратэ может справиться с этим. См. Документацию по преобразованию типов: https://github.com/intuit/karate#type-conversion

* def response =
"""
[
  {
    "code": 200,
    "result": "[{\"distinct\":false,\"operatetime\":\"2019-05-17 17:01:01\",\"personid\":\"e8edec61-fd1a-4c69-8b60-fb8d21d06095\",\"sampleid\":\"1c9410cd-608d-4eb1-8d12-c8f2faf7fca4\"}]"
  }
]
"""
* json result = response[0].result
* def personId = result[0].personid
* match personId == 'e8edec61-fd1a-4c69-8b60-fb8d21d06095'
...