Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegohamaz1

Parse de string de dados

Recommended Posts

Galera tenho uma resposta que serviria para um ajax vem assim

 

 

{'value':'CLIENTE 1', 'id':'23895'},{'value':'CLIENTE', 'id':'23896'},{'value':'CLIENTE', 'id':'23897'},{'value':'CLIENTE', 'id':'23898'},{'value':'CLIENTE', 'id':'23899'}

 

 

eu gostaria de fazer um looping pegando apenas o ID , tentei trasnformar em json de todas formas e nao funciona , alguem tem uma solução?

 

queria pegar apenas os valores do ID 23895,23896 etc

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem uma resposta de um ajax, a questão não é do server side e sim do client side, ou seja, você terá que trabalhar isto com jquery...

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo errado não está certo sobre seu Json...

Json pra funcionar bacaninha precisa:

  • ter o encapsulamento entre " (aspas duplas)
  • Ter o encapsulamento inicial/final de []

Ex de como ele deveria ser:

 [{"value":"CLIENTE 1", "id":"23895"}
,{"value":"CLIENTE"  , "id":"23896"}
,{"value":"CLIENTE"  , "id":"23897"}
,{"value":"CLIENTE"  , "id":"23898"}
,{"value":"CLIENTE"  , "id":"23899"}]

Você sempre pode dar uma olha em qualquer validador online caso pinte a duvida (Oq esta errado o formato Json ou meu JavaScript
Ex: http://jsonlint.com/

Pois caso ele esteja errado sempre entra no bloco

,error: function(){

do JavaScript..


Sobre a duvida com Loop, montei um exemplo em cima do código:

Mas seria interessante dar uma lida na documentação oficial do jQuery que é bacana.
https://api.jquery.com/each/


...

<script type="text/javascript" src="js/lib/jquery-1.10.2.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$.ajax({
			 url: 'dados.json'
			,type:'GET'
			,dataType: 'json'
			,success: function(json){
				// console.log(json);
				$(json).each(function (index, element){
					console.log(element);
					console.log(element.value);
					console.log(element.id);
				});
			}
			,error: function(json){
				//console.log(json);
			}
		});
	});
</script>

Twister Plot Edit:

 

Caso esteja trabalhando com php, utiliza a função json_encode:
http://php.net/manual/pt_BR/function.json-encode.php

* Lembrando que Json é nativamente UTF-8 sem massagem sem choro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal

 

 

Eu consegui mas meu codigo esta bizarro, creio que com um preg_match eu resolveria isso alguem manja de expressão regular pra acertar esse codigo..

 

 

$teste[] = $this->buscaCliente(); //retorna {'value':'CLIENTE 1', 'id':'23895'},{'value':'CLIENTE', 'id':'23896'},{'value':'CLIENTE', 'id':'23897'},{'value':'CLIENTE', 'id':'23898'},{'value':'CLIENTE', 'id':'23899'}

$json1 = substr($teste[0], 0, -1);
$retira = array("{", "}","'");
$soArray = str_replace($retira, "", $json1);
$array = explode(',', $soArray);
foreach($array as $key => $value){
if(strpos($value, 'id') == true){
$idTratado = str_replace("id:", "", $value);
$valorIN .= $idTratado .",";
}
}
$valorIN = substr($valorIN, 0, -1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que não fazer um json_decode($this->buscaCliente()) e manipular um objecto nativo de PHP?

 

Deixo aqui um exemplo.

 

Por que como ja disse no POST o resultado do buscaCliente, nao e um json, por consequencia nao permitindo sua conversao..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.