Jump to content
Fagner Dos Santos

Problemas com JSON no Webservice

Recommended Posts

Amigos, estou com um sério problema com json2.asp

Estou usando ele pra listar uma paginação de um webservice.

Ele lê normalmente a página 1, mas quando o WHILE passa pra pagina 2 ele me retorna um erro

Acredito que seja alguma coisa no sentido de zerar o Objeto Json mas não estou sabendo como fazer.

 

Erro de tempo de execução do Microsoft VBScript erro '800a01b6'

O objeto não dá suporte para a propriedade ou método: 'parse'

api_sms/grava_extrato_sms.asp, linha 93
paginas=2
conta = 0
webservice_url = "https://api.directcallsoft.com/extrato/list-sms"
do while conta <= paginas
  conta = conta + 1
  
  resultado = ""
  arrmsg = ""
  mensagens = ""

  response.write "conta: " & conta
  response.write ","
  '===== CONSULTAR SMS
  set Xml = Server.Createobject("MSXML2.ServerXMLHTTP")
  Xml.open "POST", webservice_url, false
  Xml.setRequestHeader "content-type", "application/x-www-form-urlencoded"
  Xml.send("access_token="&tokenSMS&"&formato=json&dataInicial="&dataAnterior&"&dataFinal="&dataAtual&"&pagina=" & conta)
  resultado = Xml.responseText

  Set json = JSON.parse(resultado)
  mensagens = json.msg
  arrmsg = split(mensagens, ",")
  

  for i=0 to ubound(arrmsg)
    response.write "conta_for: " & i
    response.write ","
    callerid = json.msg.get(i).callerid
    cliente = json.msg.get(i).cliente
    status_sms = json.msg.get(i).status_sms
    callerid = json.msg.get(i).callerid
    custo = json.msg.get(i).custo
    uuid_origem = json.msg.get(i).uuid_origem
    response.write callerid
    response.write ","
  next
loop
set Xml = Nothing
set json = Nothing

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Samuel Pietro
      Olá pessoal!

      Preciso da ajuda de vocês no seguinte!
      Tenho um arquivo retornos.json
       
      { "retornos": [ { "id": 1, "sigla": "00", "nome": "Efetuado" }, { "id": 2, "sigla": "01", "nome": "Inválido" }, { "id": 3, "sigla": "02", "nome": "Corrompido" } ] }
      E na minha aplicação feita com CodeIgniter tenho uma consulta que me mostra a sigla que está cadastrada no BD.
       
      foreach ($results as $r) {  $retorno = $r->codRetorno; } 
      Eu preciso que essa consulta ao me retornar a sigla 02 por exemplo o echo apresente o "nome" para tal "sigla" que esta cadastrada no JSON.

      No caso seria a seguinte lógica: 
      if ("$retorno" == JSON["sigla"]){ echo JSON["nome"];  } //ESTE NÃO É UM CÓDIGO VÁLIDO, É APENAS PARA FINS DE ENTENDER A LÓGICA DO QUE EU PRECISO. // PS. ESSA LOGICA PRECISA SER APLICADA DENTRO DE UM FOREACH COM MILHARES DE REGISTROS.
      Como eu posso fazer isso?
       
    • By ghlevin
      Possuo uma Console Application em C# que faz a extração de dados do Dynamics 365 Customer Voice, da Microsoft. O código abaixo pega dados de tabelas de Projetos, Pesquisas, Perguntas e Respostas respectivamente. Os dados extraídos vão para arquivos JSON que ficam salvos no meu HD.
          using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using System;     using System.Collections.Generic;     using System.Linq;     using System.Text;     using UmbracoMVC.App_Code.Infrastructure.CRMIntegration.Business;     using System.IO;     using Microsoft.Crm.Sdk.Messages;     using System.Globalization;     using E2BWorkflow.Classes;     using System.Web.Management;     using System.ServiceModel;     using System.Drawing;     using System.Web.UI.WebControls;     using System.Web.Script.Serialization;            namespace ConsoleApplication1     {         class Program         {             static void Main(string[] args)             {                 GetCustomerVoice();             }                  public static void GetCustomerVoice()             {                 IOrganizationService crmServiceTo;                      crmServiceTo = Connect.Crm("myemail@e-mail.com", "mypassword", "https://mydynamics.crm4.dynamics.com/XRMServices/2011/Organization.svc");                      // Get Projects                 QueryExpression qP = new QueryExpression("msfp_project");                 qP.ColumnSet = new ColumnSet(true);                 var projects = crmServiceTo.RetrieveMultiple(qP);                 foreach (var p in projects.Entities)                 {                     msfp_project project = p.ToEntity<msfp_project>();                 }                 var projectsList = projects.Entities.Select(                     s => new {                         msfp_projectId = s.Attributes["msfp_projectid"],                         msfp_name = s.Attributes["msfp_name"]                     }                 ).ToList();                      var jsonSerialiser = new JavaScriptSerializer();                 var json = jsonSerialiser.Serialize(projectsList);                 System.IO.File.WriteAllText(@"C:\MyDirectory\projects.json", json);                      // Get Surveys                 QueryExpression qS = new QueryExpression("msfp_survey");                 qS.ColumnSet = new ColumnSet(true);                 var surveys = crmServiceTo.RetrieveMultiple(qS);                 foreach (var s in surveys.Entities)                 {                     msfp_survey survey = s.ToEntity<msfp_survey>();                 }                 var surveysList = surveys.Entities.Select(                     s => new {                         msfp_surveyId = s.Attributes["msfp_surveyid"],                         msfp_name = s.Attributes.Contains("msfp_name") ? s.GetAttributeValue<string>("msfp_questiontext") : "",                         msfp_anonymousurl = s.Attributes.Contains("msfp_anonymousurl") ? s.GetAttributeValue<string>("msfp_anonymousurl") : "",                         msfp_friendlyname = s.Attributes.Contains("msfp_friendlyname") ? s.GetAttributeValue<string>("msfp_friendlyname") : "",                         msfp_surveyurl = s.Attributes.Contains("msfp_surveyurl") ? s.GetAttributeValue<string>("msfp_surveyurl") : "",                         msfp_projectId = s.Attributes.Contains("msfp_project") && s.GetAttributeValue<EntityReference>("msfp_project").Id != null ? s.GetAttributeValue<EntityReference>("msfp_project").Id : Guid.Empty                     }                 ).ToList();                      jsonSerialiser = new JavaScriptSerializer();                 json = jsonSerialiser.Serialize(surveysList);                 System.IO.File.WriteAllText(@"C:\MyDirectory\surveys.json", json);                      // Get Questions                 QueryExpression qQ = new QueryExpression("msfp_question");                 qQ.ColumnSet = new ColumnSet(true);                 var questions = crmServiceTo.RetrieveMultiple(qQ);                 foreach (var q in questions.Entities)                 {                     msfp_question question = q.ToEntity<msfp_question>();                 }                 var questionsList = questions.Entities.Select(                     s => new {                         msfp_questionId = s.Attributes["msfp_questionid"],                         msfp_questionText = s.Attributes.Contains("msfp_questiontext") ? s.GetAttributeValue<string>("msfp_questiontext") : "",                         msfp_surveyId = s.Attributes.Contains("msfp_survey") && s.GetAttributeValue<EntityReference>("msfp_survey").Id != null ? s.GetAttributeValue<EntityReference>("msfp_survey").Id : Guid.Empty                     }                 ).ToList();                      jsonSerialiser = new JavaScriptSerializer();                 json = jsonSerialiser.Serialize(questionsList);                 System.IO.File.WriteAllText(@"C:\MyDirectory\questions.json", json);                      //Get Question Responses                 QueryExpression qR = new QueryExpression("msfp_questionresponse");                 qR.ColumnSet = new ColumnSet(true);                 var responses = crmServiceTo.RetrieveMultiple(qR);                 foreach (var r in responses.Entities)                 {                     msfp_questionresponse response = r.ToEntity<msfp_questionresponse>();                 }                      var responsesList = responses.Entities.Select(                     s => new {                         msfp_questionresponseId = s.Attributes["msfp_questionresponseid"],                         msfp_questionresponse = s.Attributes["msfp_name"],                         msfp_questionId = s.GetAttributeValue<EntityReference>("msfp_questionid").Id                     }                 ).ToList();                      jsonSerialiser = new JavaScriptSerializer();                 json = jsonSerialiser.Serialize(responsesList);                 System.IO.File.WriteAllText(@"C:\MyDirectory\responses.json", json);                      Console.WriteLine("END");                 Console.ReadKey();             }         }     } Agora o que eu preciso é que esses JSONs sejam salvos dentro de um contêiner de um blob em uma Conta de Armazenamento Azure. Procurei várias soluções na Internet, mas não estou bem certo do que deveria usar em uma Console Application.
    • By FabianoSouza
      Tenho uma situação em que preciso gravar uns três campos.
      Porém, a quantidade de vezes que preciso executar o INSERT é variável (1, 2 ou 3 vezes).
      Quero saber dos colegas qual seria a melhor abordagem e um exemplo de código para isso.
       
      Pensei inicialmente em passar para o banco um JSON contento os objetos (até 3). 
      Aí fazer um loop que percorra esse JSON e execute o INSERT ao mesmo tempo.
       
      Podem dar uma força?
       
      Valew!
       
    • By iguulima
      Bom dia a todos, tenho em meu banco de dados uma tabela de pedidos, onde nesse pedidos estão salvos as id's dos produtos que foram selecionados pelo usuário, gostaria de saber se tem alguma forma utilizando um while que possa selecionar os produtos mais pedidos dessa tabela, não tenho ideia por onde começar. Consigo listar todos apenas mas não sei como selecionar os que são mais pedidos.
    • By Matheus B. Siqueira
      Fala pessoal, meu problema é o seguinte: Tento retornar os valores do json_encode via AJAX, só que na hora de armazenar no const ele da erro de:
      <b>Notice</b>: Undefined variable: videos_pendentes in <b>C:\xampp\htdocs\tcc\monitor.php</b> on line <b>504</b><br /> <br /> <b>Notice</b>: Trying to access array offset on value of type null in <b>C:\xampp\htdocs\tcc\monitor.php</b> on line <b>504</b><br /> null); Não sei qual seria a melhor forma de retornar esses dados, alguma sugestão?
      AJAX:
      $('#btn-lista-videos-carousel').click(function() { var nome_monitor = $("#nomecomp").val(); $.ajax({ url: 'pesquisar_video_pendente.php', data: {nome_monitor}, dataType: 'json', type: "POST", complete: function(data) { const videos_pendentes = JSON.parse(<?php echo json_encode($videos_pendentes[0]) ?>); let itens = ''; let indicadores = ''; $('#botaobaixar').hide(); $('#tudo_monitor').hide(); $('#carouselExampleIndicators_2').hide(); if (videos_pendentes.length > 0) { videos_pendentes.forEach(function(video, indice) { indicadores += '<li data-target="#carouselExampleIndicators" data-slide-to="' + indice + '" class="' + (indice == 0 ? 'active' : '') + '"></li>' itens += '<div data-link_video="' + video.link_video + '" data-id="' + video.idvideo_monitor + '" data-titulo="' + video.titulo_video + '" data-situacao="' + video.situacao + '" class="carousel-item ' + (indice == 0 ? 'active' : '') + '">'; itens += ' <iframe width="100%" height="350" src="https://www.youtube.com/embed/' + video.link_video + '" frameborder="0" allowfullscreen></iframe>' itens += '</div>'; }); $('#tudo_monitor').show(); $('#carouselExampleIndicators').show(); $('#carousel-indicadores').html(indicadores); $('#carousel-itens').html(itens); } else { alert('Nenhum vídeo pendente'); } } }); }); E o meu PHP, a qual busca os dados no mysql:
      <?php $monitor = $_POST['nomecomp']; $servidor = 'localhost'; $usuario = 'root'; $senha = 'root'; $banco = 'onteach'; $conexao = mysqli_connect($servidor, $usuario, $senha, $banco); $consulta = "SELECT * FROM video_monitor WHERE video_monitor.monitor = '$monitor' AND video_monitor.pendente = 1 OR video_monitor.pendente = 3"; $resultados = mysqli_query($conexao, $consulta); $videos_pendentes = array(); while ($video = mysqli_fetch_assoc($resultados)) $videos_pendentes[] = $video; mysqli_free_result($resultados); mysqli_close($conexao); $videos_pendentes = json_encode($videos_pendentes); echo json_encode($videos_pendentes); ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.