Как мне получить доступ к вложенному значению внутри этого объекта JSON? - PullRequest
0 голосов
/ 12 июля 2020
{
"payload": "{\"apiVersion\":\"0.1.0\",\"timestamp\":\"2020-07-12T18:04:45.901Z\",\"returnResult\":\"success\",\"resultDescription\":\"\",\"blockHash\":\"00000000000000000096b13c9aee9b1a0b02daecf8200a10616adf1349eefd4f\",\"blockHeight\":641659,\"confirmations\":1723,\"minerId\":\"03e92d3e5c3f7bd945dfbf48e7a99393b1bfb3f11f380ae30d286e7ff2aec5a270\",\"txSecondMempoolExpiry\":0}",
"signature": "3045022100cf2a2e272ae02e95a37dc010342d759714a22c1bda9761807049f46ce3962f14022074e70938e06ac8095498007f1e4a84373226c2928b7d26d97b337d6328b59c0c",
"publicKey": "03e92d3e5c3f7bd945dfbf48e7a99393b1bfb3f11f380ae30d286e7ff2aec5a270",
"encoding": "UTF-8",
"mimetype": "application/json" }

В настоящее время я работаю над проектом, использующим Javascript. В моем logi c я делаю выборку, которая отправляет данные транзакции в MAPI, который возвращает объект JSON, указанный выше. Я пытаюсь получить доступ к определенному значению внутри ключа «полезная нагрузка». Ради этого вопроса - можем ли мы получить доступ к значению временной метки?

Затем я хотел бы сохранить это значение в переменной, чтобы использовать его для другой задачи.

Мой код :

async function postData(url ='', data = { }) {
    
    const response = await fetch(url, {
    method: 'POST',
    headers: {
    'Content-Type': 'application/json' },
    body: JSON.stringify(data) });
    let txoData = await response.json();
    let timestamp = Object.values(Object.values(txoData)[0]['timestamp'])

    return txoData;
}

postData('https://merchantapi.taal.com/mapi/tx', { 'rawtx': raw1 })
.then(txoData => { console.log(txoData) })
.then(timestamp => { console.log(timestamp) })`

Мой предыдущий код вернул "undefined"

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

response. json () возвращает объект json, что означает, что строковые данные доступны как объект, поэтому нотацию объекта можно использовать для чтения значений с использованием соответствующих имен вложенных свойств.

итак, ниже должно работать

let txoData = await response.json();
let timestamp = txoData.payload.timestamp;
0 голосов
/ 12 июля 2020

После того, как у вас есть объект json (response. json ()), вы можете получить доступ к свойствам, зная их имена, следующими способами:

var a = jsonObj.propertyName;

Или таким образом:

var a = jsonObj['propertyName'];
...