#json #fetch #velo
Вопрос:
У меня возникли проблемы с получением значения через функцию json в velo. Извините, я новичок в этом, так что, возможно, я делаю что-то не так. Это мой код:
import {fetch} from 'wix-fetch';
import wixFetch from 'wix-fetch';
export function button1_click(event) {
fetch("https://www.banxico.org.mx/SieAPIRest/service/v1/series/SF43787/datos/2020-01-01/2020-01-02?token=81a6706a64a09f9f3d808155ad53195f7db0a1e9826a176e805076353257ba2c", {"method": "get"})
.then( (httpResponse) => {
let url = httpResponse.url;
let statusCode = httpResponse.status;
let statusText = httpResponse.statusText;
let headers = httpResponse.headers;
let bodyUsed = httpResponse.bodyUsed;
$w("#input1").value=statusText;
$w('#input2').value= url;
if (httpResponse.ok) {
return httpResponse.json();
}
else {
return Promise.reject("Fetch did not succeed");
}
} )
.then( (json) => {
console.log(json.dato);
$w("#input2").value='JSON PROMISE OK' json.dato
} )
.catch( (err) => {
console.log(err);
} );
Результатом для ввода 1 является: JSON PROMISE OK undefined
Я не могу решить эту проблему. Любая помощь будет признательна!
Ответ №1:
Я полагаю, что проблема, с которой вы столкнулись, заключается в том, что вы неправильно ссылаетесь на возвращенный объект JSON. Нет json.dato
, объект, возвращенный на основе вашего фрагмента кода, выглядит следующим образом: объект, возвращенный из https://www.banxico.org.mx/SieAPIRest/service/v1/series/SF43787/datos/2020-01-01/2020-01-02?token=81a6706a64a09f9f3d808155ad53195f7db0a1e9826a176e805076353257ba2c
Поэтому, чтобы получить свойство dato конкретно, вы должны обратиться к чему-то вроде json.bmx.series[0].datos[0].dato
. Есть несколько способов узнать о структуре возвращаемого объекта из ресурса, который вы извлекаете, один из способов, который я хотел бы предложить вам использовать, — это предварительный просмотр или функциональное тестирование (которое в настоящее время доступно только в внутренних функциях), вы можете узнать больше об этих инструментах здесь.
С другой стороны, код, который вы написали, в основном похож на копию и вставку из нескольких примеров Velo, и я считаю, что в нем есть некоторые ненужные части. Например, вы не используете wixFetch, поэтому нет необходимости импортировать. Вы также не используете statusCode
headers
bodyUsed
переменные , и.
Комментарии:
1. Большое вам спасибо, я следую вашим советам, и у меня все отлично работает. Теперь я могу получить значение.