Tenho uma consulta de autocomplete no bd que funciona no servidor local e não roda no servidor da web.
Ao enviar a consulta no servidor local aparece no console :Fetch terminou o carregamento: GET ".../Cidade?cidade=sao%20paulo". A pesquisa é feita normalmente.
Quando mando a mesma pesquisa para o servidor web(locaweb) aparece no console: Fetch terminou o carregamento: GET "..../Cidade?cidade=sao%2520paul".
O número 25 aparece só no servidor web. Pelo que pesquisei 25 significa %, ou seja, está duplicando o caractere %.
Não consegui utilizar nenhuma função para evitar que isto ocorra. Alguém sabe se há alguma configuração no servidor web que possa ser alterada para evitar essa duplicação?
Olá pessoal.
Eu já utilizo o FOR JSON PATH para retornar o o resultado de uma consulta com JSON. Isso eu já sei fazer.
O que preciso é criar uma função que receba um SELECT como parâmetro e retorne o resultado desse SELECT já formatado como JSON.
Estou tentando isso, mas sem sucesso.
A function dbo.fn_retornaJsonPath :
(@String NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
BEGIN
BEGIN
IF @String <> NULL
SET @String = (SELECT @String AS jsonPath FOR JSON PATH)
END
BEGIN
IF @String IS NULL
SET @String = '[]'
END
RETURN @String
END
Forma de executar:
SET @sql = 'SELECT '
SET @sql = @sql + ' dbo.fn_retornaJsonPath ((SELECT TT.tema FROM dbo.tabela AS TT WHERE TT.cd = CTT.id)) AS ''temas'' '
SET @sql = @sql + ' FROM dbo.minhaTab AS CTT '
EXEC(@sql)
Mas não está rolando....
Olá pessoal, gostaria de saber como copiar o conteúdo de um campo json com muitos pais e filhos e colar em outro campo de pais e filhos do mesmo arquivo json?
agradeço a ajuda de vocês.
em anexo o arquivo json e o codigo que estou tentando fazer
Olá a todos!
Tenho uma api Sala de Aula e dentro dela o id de cada aluno. Em outra api, API ALUNO, tenho os dados de cada aluno: nome, foto, endereço.
Estou fazendo o foreach da api Sala de Aula e preciso também retornar os dados de cada aluno.
Segue o código que não estou conseguindo desenvolver
$sala = file_get_contents("https://api/sala?id=987");
$sala = json_decode($sala, true);
$sala = $sala['data'];
foreach ($sala as $resulsala){
$codigoaluno = $resulsala['idaluno'];
$alunos = file_get_contents("https://api/alunos?id=$codigoaluno");
$alunos = json_decode($alunos, true);
$alunos = $alunos['data'];
foreach ($alunos as $resulalunos){
echo $resulalunos['nome'];
echo $resulalunos['foto'];
echo $resulalunos['rua'];
}
}
Tenho a seguinte situação.
Recebo vários JSONs podendo ou não ser multidimensional, preciso atualizar uma determinada chave deste JSON, o problema é que algumas chaves podem ser duplicadas, bem como seus respectivos valores. Como estou tentando criar uma função genérica para navegar em qualquer JSON e modificar a chave em si, com estas duplicidades de chaves, estou tendo dificuldades em dizer ao código qual é chave que devo alterar.
$json = json_decode($json_string, true);
Função que criei até aqui
/**
* Encontra a chave correspondente dentro do JSON
*
* @param array $jsonArray - JSON a ser verificado
* @param string $keyFather - chave de entrada
* @param string $keyUpdate - chave que modificar
* @param string $valueUpdate - novo valor da chave
* @return string
*
*/
public static function searchKeyJson(array $jsonArray, string $keyFather, string $keyUpdate = null, $valueUpdate = null)
{
foreach ($jsonArray as $key => $value) {
if ($key == $keyFather && $keyUpdate == null) {
$jsonArray[$key] = $valueUpdate;
return $jsonArray;
}
if ($key == $keyFather && $keyUpdate != null) {
$jsonArray[$keyFather][$keyUpdate] = $valueUpdate;
return $jsonArray;
}
if (is_array($value)) {
if (($result = self::searchKeyJson($value, $keyFather, $keyUpdate, $valueUpdate)) !== false) {
if ($keyUpdate == null) {
return $result;
} else {
return $result;
}
}
}
}
return false;
}
Até modifico o valor, mais no final para salvar, ele não monta o JSON como original, ele caba ignorando a chave inicial no JSON de exmeplo "CREDITOR": {}
Retorno da função (notem que esta forma do padrão da original)
=> [
"TAX" => [
"TAC" => 0.7,
],
"ENABLE" => "true",
"PRODUCTION" => [
"email" => "teste",
"senha" => "12457895",
"BASE_URL" => "https://domino.com",
],
"HOMOLOGATION" => [
"email" => "email@dominio.com",
"senha" => "12457895",
"BASE_URL" => "https://domino.com",
],
"TARGET_VALUES" => 5000000,
]
Se eu percorrer o array e tentar modificar a chave em questão, ele muda todas as as chaves que tiverem no JSON porque tem duplicidade.
Como posso resolver isto com uma função global que sirva para qualquer padrão de JSON que eu tiver?