function getJSON(jsonstring){
                  
                  
                    try{
                  
                  
                      var data = JSON.parse(jsonstring);
                  
                  
                      var pairs = sh.getRange('C3:C').getValues().join().split(",");
                  
                  
                      var ligne = pairs.indexOf(data.data.symbol);
                  
                  
                      if (ligne != -1){
                  
                  
                        var result=[]
                  
                  
                        result.push([ data.data.bid , data.data.ask ])
                  
                  
                        sh.getRange('D' + (ligne+3) + ':E' + (ligne+3)).setValues(result)
                  
                  
                      }
                  
                  
                    }
                  
                  
                    catch(e){
                  
                  
                    }
                  
                  
                  }
                  
                  
                
Вместо var pairs = sh.getRange('C3:C').getValues().join().split(","); var pairs = sh.getRange('C3:C').getValues().flat();
 Friend of paradoxes
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Friend of paradoxes
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  А для массива обьектов еще подскажите, можно улучшить?function getJSON2(jsonstring){ try{ var data = JSON.parse(jsonstring); var pairs = sh2.getRange('C3:C').getValues().join().split(","); var index; for (index = 0; index < pairs.length; ++index) { var lignem = data.findIndex(item => item.S === pairs[index]) if (lignem != -1){ var ligne = pairs.indexOf(pairs[index]); var result=[] result.push([ data[lignem].bp, data[lignem].ap ]) sh2.getRange('D' + (ligne+3) + ':E' + (ligne+3)).setValues(result) } } } catch(e){ } }
Я повторю то же, что и просил в соседнем чате: пример. Данных, например
Пришлите пример кода в Таблице с данными
 Friend of paradoxes
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Friend of paradoxes
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Структура для первого парсера { "data": { "symbol": "SBER", "exchange": "MOEX", "description": "Сбербанк России ПАО ао", "ask": 303.65, "bid": 303.59, "prev_close_price": 303.7, "last_price": 303.59, "last_price_timestamp": 1620221538, "change": -0.11, "change_percent": -0.04, "high_price": 305, "low_price": 302.71, "accruedInt": 0, "volume": 38767080, "open_price": 304.01, "yield": null, "lotsize": 10, "lotvalue": 3035.9, "facevalue": 3, "type": "CS" }, "guid": "f35a2373-612c-4518-54af-72025384f59b" }
структура совершенно не соответствует приведенному скрипту, кстати
Обсуждают сегодня