PDA

View Full Version : Aiuto parsing con php


ChristianX86
21-10-2013, 18:44
ciao a tutti!! :D

devo estrapolare da un file contenente questo:

{"id":1365028063,"title":"Supervisore ISOLA FV","private":"false","feed":"https://api.xively.com/v2/feeds/1365028063.json","status":"live","updated":"2013-10-20T19:07:06.507129Z","created":"2013-10-20T11:37:44.024745Z","creator":"https://xively.com/users/christian1993","version":"1.0.0","datastreams":[{"id":"StatoImpianto","current_value":"0.00","at":"2013-10-20T19:07:06.193250Z","max_value":"0.0","min_value":"0.0","unit":{"symbol":"1 = FV","label":"1 = FV"}},{"id":"TensioneDiBatteria","current_value":"55.08","at":"2013-10-20T19:07:06.193250Z","max_value":"64.69","min_value":"32.72","unit":{"symbol":"V","label":"Volt"}},{"id":"TensioneFotovoltaico","current_value":"0.26","at":"2013-10-20T19:07:06.193250Z","max_value":"65.33","min_value":"0.0","unit":{"symbol":"V","label":"Volt"}},{"id":"WattCARICHI","current_value":"405.00","at":"2013-10-20T19:07:06.193250Z","max_value":"2136.0","min_value":"28.0","unit":{"symbol":"W","label":"Watts"}},{"id":"WattENEL","current_value":"423.00","at":"2013-10-20T19:07:06.193250Z","max_value":"2020.0","min_value":"-199.0","unit":{"symbol":"W","label":"Watts"}}],"product_id":"_PXz62HJQqShYB-LzGC4","device_serial":"Q6ARV37NY9HN"}

i valori utili dopo ogni "current_value"...

ne sto uscendo matto, qualcuno di voi ha una soluzione?

grazie

idoido
21-10-2013, 19:27
la stringa che hai è nel formato json, cerca con google come manipolare oggetti json con php

ChristianX86
21-10-2013, 20:22
ciao, grazie per la risposta..

non è che mi potresti fare un esempio pratico tu? io ho provato in questo modo:

$string = file_get_contents("myText.txt");
$json_a=json_decode($string,true);
echo $json_a['TensioneDiBatteria'][current_value];


ma non funziona..

grazie

leonardo73
22-10-2013, 02:29
"TensioneDiBatteria" è il valore della chiave "id", mentre "current_value" è la chiave di "55.08"

fatti un brutale var_dump di $json_a (sarebbe meglio usare un po' di semantica anche nel nominare le variabili) e vedi che struttura hai

ChristianX86
22-10-2013, 06:57
ciao,

ho cercato ma in programmazione sono abbastanza limitato, se mi potresti fornire 2 - 3 righe già pronte te ne sarei grato :) , il problema è che quella riga di json non l'ho creata io (magari), è fornita da un sito dove si raccolgono dati da vari sensori.

grazie

leonardo73
22-10-2013, 11:05
se mi potresti fornire 2 - 3 righe già pronte te ne sarei grato

come detto: var_dump e vedi la struttura dell'array.


il problema è che quella riga di json non l'ho creata io

e qual è il problema?

ChristianX86
22-10-2013, 12:45
ho provato con

<?php
$json = 'myText.txt';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

mi restituisce "NULL NULL"

leonardo73
22-10-2013, 12:49
http://php.net/manual/en/function.json-decode.php

"NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit."

valida il json ed eventualmente aumenta la depth

ChristianX86
22-10-2013, 15:25
ehh ti ripeto che sono abbastanza ignorante... per me è arabo quello che hai scritto, se mi scrivi una soluzione già pronta all'uso ti rigrazio