Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Проблем с Google Sheets - JSON.

Featured Replies

Здравейте , нов съм във вашия форум, но отдавна чета теми от тук.
Мъча се с една таблица в Google Sheets и съм пълен лаик.
Взех я от нета работеща и в един момент спря.
Всичко , което знам , че ползва , някаква функция JSON .
Единственото , което ми пише във всички колони е следното...... Еrror getting data.
Ha другият ми компютър , работи без проблем.
Взимам от него функциите , слагам ги на неработещия и греда , нищо не става.
Някой с идеи , че не разбирам ,защо спря да работи?

Здравейте!

Не се сещам за такава функция! Може би ... JOIN?

Цитат

Обединява елементите на един или повече едномерни масиви, използвайки определен разделител.

Пп. Иначе JSON, е JavaScript Object Notation, но няма връзка с Google Sheets!

Ще е полезно да видим някакъв пример на това, което се чупи - естествено без истинската информация, ами с измислена такава - но все пак да видим същата грешка.

  • Автор
преди 1 час, killchain написа:

Ще е полезно да видим някакъв пример на това, което се чупи - естествено без истинската информация, ами с измислена такава - но все пак да видим същата грешка.

He разбрах снимка ли да кача ?

Ето я.

google1111.jpg

importjson() изглежда като ръчно добавена функция. Какво прави тя, може ли да видим съдържанието? Трябва да може да се достъпи от Tools -> Script editor. Адресът във формулата, който е цензуриран (това, което започва с "http" и най-вероятно завършва на ".json"), отваря ли се сам за себе си, ако се пусне в друг таб?

  • Автор
преди 23 минути, killchain написа:

importjson() изглежда като ръчно добавена функция. Какво прави тя, може ли да видим съдържанието? Трябва да може да се достъпи от Tools -> Script editor. Адресът във формулата, който е цензуриран (това, което започва с "http" и най-вероятно завършва на ".json"), отваря ли се сам за себе си, ако се пусне в друг таб?

Ето го съдържанието                           =importjson(join("","http://shipit-api.herokuapp.com/api/guess/",A2),"0")

 от зададените номера , явно извлича информацията в следващите колонки.

Вчера работеше и изведнъж спря

Какво се получава, когато събереш адреса със съдържанието на A2? Може в друга клетка да пробваш просто следното:

=JOIN("", "http://shipit-api.herokuapp.com/api/guess/", A2)

... и ще се получи "сглобен" адрес, който може да опиташ да отвориш. Иначе може и просто ръчно да копираш съдържанието на A2 и да го добавиш след "http://shipit-api.herokuapp.com/api/guess/" колкото за проба.

Какво има в Tools -> Script editor? Интересува ме скрипта (ако има повече от един), в който е декларирана тази функция - importjson()

Редактирано от killchain (преглед на промените)

  • Автор
преди 4 минути, killchain написа:

Какво се получава, когато събереш адреса със съдържанието на A2? Може в друга клетка да пробваш просто следното:


=JOIN("", "http://shipit-api.herokuapp.com/api/guess/", A2)

... и ще се получи "сглобен" адрес, който може да опиташ да отвориш. Иначе може и просто ръчно да копираш съдържанието на A2 и да го добавиш след "http://shipit-api.herokuapp.com/api/guess/" колкото за проба.

Какво има в Tools -> Script editor? Интересува ме скрипта (ако има повече от един), в който е декларирана тази функция - importjson()

Като го сложа в друга колона , нищо не става

Ето какво копирах

 

/**
* Imports JSON data to your spreadsheet Ex: IMPORTJSON("http://myapisite.com","city/population")
* @param url URL of your JSON data as string
* @param xpath simplified xpath as string
* @customfunction
*/
function IMPORTJSON(url,xpath){
  
  try{
    // /rates/EUR
    var res = UrlFetchApp.fetch(url);
    var content = res.getContentText();
    var json = JSON.parse(content);
    
    var patharray = xpath.split("/");
    //Logger.log(patharray);
    
    for(var i=0;i<patharray.length;i++){
      json = json[patharray[i]];
    }
    
    //Logger.log(typeof(json));
    
    if(typeof(json) === "undefined"){
      return "Node Not Available";
    } else if(typeof(json) === "object"){
      var tempArr = [];
      
      for(var obj in json){
        tempArr.push([obj,json[obj]]);
      }
      return tempArr;
    } else if(typeof(json) !== "object") {
      return json;
    }
  }
  catch(err){
      return "Error getting data";  
  }
  
}

 

 

преди 1 час, lyubomirbg написа:

Като го сложа в друга колона , нищо не става

Ето какво копирах

/**
* Imports JSON data to your spreadsheet Ex: IMPORTJSON("http://myapisite.com","city/population")
* @param url URL of your JSON data as string
* @param xpath simplified xpath as string
* @customfunction
*/
function IMPORTJSON(url,xpath){
  
  try{
    // /rates/EUR
    var res = UrlFetchApp.fetch(url);
    var content = res.getContentText();
    var json = JSON.parse(content);
    
    var patharray = xpath.split("/");
    //Logger.log(patharray);
    
    for(var i=0;i<patharray.length;i++){
      json = json[patharray[i]];
    }
    
    //Logger.log(typeof(json));
    
    if(typeof(json) === "undefined"){
      return "Node Not Available";
    } else if(typeof(json) === "object"){
      var tempArr = [];
      
      for(var obj in json){
        tempArr.push([obj,json[obj]]);
      }
      return tempArr;
    } else if(typeof(json) !== "object") {
      return json;
    }
  }
  catch(err){
      return "Error getting data";  
  }
}

Хубаво цитираш, ама ... това не е функция  на Google Sheeds!

Виж това - https://github.com/bradjasper/ImportJSON

Сега, аз не знам този сайт за какво служи (и за времето, което го гледах - 5 мин - също не разбрах), но въпросът е:

  1. Аз не видях да предлагат API (но може да е и за регистрирани потребители)
  2. Как точно става аутентикирането пред това API?
  • Автор

Проблемът си го открих сам.

Копирал съм грешни неща в началото на таблицата и цялата логика на таблицата се е побъркала.

Благодаря на всички за отделеното време.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.