WIX Проблемы с сохранением данных для получения значения с помощью fetch, json

#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. Большое вам спасибо, я следую вашим советам, и у меня все отлично работает. Теперь я могу получить значение.