O que eu quero fazer é o seguinte:
- tomando JSON como entrada da área de texto em php
- use esta entrada e converta-a para JSON e passe-a para php curl para enviar a solicitação.
isso estou chegando no php de get da API essa string json eu quero passar para json, mas não está convertendo para array
echo $str='{
action : "create",
record: {
type: "n$product",
fields: {
n$name: "Bread",
n$price: 2.11
},
namespaces: { "my.demo": "n" }
}
}';
$json = json_decode($str, true);
o código acima não está me retornando matriz.
then it is not giving
Não dando o que? Você pega uma string formatada em JSON da área de texto e a converte em JSON ???Respostas:
Se você passar o JSON na sua postagem
json_decode
, ele falhará. Seqüências de caracteres JSON válidas citaram chaves:fonte
json_decode()
ele retornaráNULL
se o seu JSON for inválido (por exemplo, nenhuma chave entre aspas). É o que a documentação diz e é o que minha instalação do PHP 5.2 retorna. Você está usando uma função diferente da oficial, embutidajson_decode()
? O quevar_dump(json_decode($str, true));
retorna?Tente o seguinte:
o segundo parâmetro transformará a string json decodificada em matrizes associativas.
fonte
Se você está recebendo a string JSON do formulário usando
$_REQUEST
,$_GET
ou$_POST
o que você vai precisar usar a funçãohtml_entity_decode()
. Eu não percebi isso até fazer ovar_dump
que estava na solicitação versus o que copiei e aecho
declaração e notei que a string da solicitação era muito maior.Maneira correta:
Com erros:
fonte
Use a
json_decode($json_string, TRUE)
função para converter o objeto JSON em uma matriz.Exemplo:
NOTA: O segundo parâmetro converterá a string JSON decodificada em uma matriz associativa.
===========
Resultado:
fonte
Se você estiver obtendo json string da URL usando
file_get_contents
, siga as etapas:fonte
sua string deve estar no seguinte formato:
Resultado:
fonte
Você pode converter json Object em Array & String.
fonte
Se você precisar converter estruturas ou arquivos JSON em matrizes no estilo PHP, com todos os níveis de aninhamento, poderá usar esta função. Primeiro, você deve json_decode ($ yourJSONdata) e depois passá-lo para esta função. Ele exibirá na janela do navegador (ou console) as matrizes com estilo PHP corretas.
https://github.com/mobsted/jsontophparray
fonte
Eu acho que isso deve funcionar, é só que as chaves também devem estar entre aspas duplas, se não forem numerais.
fonte
esta minha solução: json string
$columns_validation = string(1736) "[{"colId":"N_ni","hide":true,"aggFunc":null,"width":136,"pivotIndex":null,"pinned":null,"rowGroupIndex":null},{"colId":"J_2_fait","hide":true,"aggFunc":null,"width":67,"pivotIndex":null,"pinned":null,"rowGroupIndex":null}]"
então eu uso json_decode duas vezes assim:
e o resultado é:
fonte
Certifique-se de que a sequência esteja no seguinte formato JSON, mais ou menos assim:
Caso contrário, você pode adicionar
"responsetype => json"
seus parâmetros de solicitação.Em seguida, use
json_decode($response,true)
para convertê-lo em uma matriz.fonte
responseType
propriedade é usada para determinar o tipo de dados na resposta à solicitação. No entanto, o problema é que o corpo da solicitação contém dados que não estão no próprio formato correto. Sua resposta, portanto, não se encaixa no contexto fornecido.Você pode alterar uma string para JSON da seguinte maneira e também pode aparar, descascar a string, se desejar,
fonte
Use este conversor, ele não falha: Services_Json
fonte
fonte