Преобразовать JSON в объект JavaScript - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь отправить диктант из python:


def toJsonCustom(self):

        ajson = []
        ajson.append({
        'id': self.id,
        'data': self.data
        })

        return json.dumps(

            ajson, default=lambda obj: obj.__dict__, separators=(',', ':'),indent=4,
        )



async def curl(url,data):
    async with aiohttp.ClientSession() as session:
        async with session.post(url, json={'datajson':data}) as response:
        print(repr(response))
            chunk = await response.content.read()
            print('Downloaded: %s' % len(chunk))



#output JSON: 

"{"datajson": "[\n    {\n        \"id\":\"test\",\n        \"data\":\"test\"\n    }\n]"}"

При попытке преобразовать выходные данные этого json в объект из javascript Iполучить неопределенное значение.

  const data = JSON.parse(get(props, 'websocket.data', null)) || get(state, 'websocket.data') || 'No data';


  console.log('Object json: ', (data));


# output: {"datajson": "[ n    { n         "id ": "test "  n         "data ": "test " n    } n]"}


  console.log('Object json: ', (data.id));

# output:undefined

Как мне правильно преобразовать json в javascript объект?

Спасибо,

Ответы [ 2 ]

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

Я думаю, вам нужно data.datajson[0].id

0 голосов
/ 03 мая 2019

Похоже, вам нужно дважды проанализировать строку JSON, чтобы получить нужный объект:

  • первый анализ дает вам объект { "datajson": "[{..." }, обратите внимание, что значением свойства datajson является строка
  • так что давайте снова разберем вышеуказанный объект nestedData = JSON.parse(data.datajson)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...