Remove: " remove: { remove: }
Limpa o json sem o uso de biblioteca, e um codigo pequeno e funcional!!
entrada: {"TL":92578,"L1":0,"L2":0,"L3":0,"L4":0,"L5":0,"L6":0,"E1":0,"E2":0}
Saida do serial:
{"TL":70170,"L1":0,"L2":1,"L3":0,"L4":1,"L5":0,"L6":1,"E1":0,"E2":0}
TL:70170,L1:0,L2:1,L3:0,L4:1,L5:0,L6:1,E1:0,E2:0
nome: E2 valor: 0
nome: E1 valor: 0
nome: L6 valor: 1
nome: L5 valor: 0
nome: L4 valor: 1
nome: L3 valor: 0
nome: L2 valor: 1
nome: L1 valor: 0
nome: TL valor: 70170
String sincronizacao = "{\"TL\":70170,\"L1\":0,\"L2\":1,\"L3\":0,\"L4\":1,\"L5\":0,\"L6\":1,\"E1\":0,\"E2\":0}";
void setup() {
Serial.begin(115200);
sincroniza ();
}
void loop() {}
void sincroniza (){
Serial.println(sincronizacao);
//limpa o json, removendo:{"}
for (int i=0; i <sincronizacao.length();++i){
char c = sincronizacao.charAt(i);
if(c=='{'){sincronizacao.remove(i, 1);i--;}
if(c=='"')sincronizacao.remove(i, 1);
if(c=='}')sincronizacao.remove(i, 1);
}
Serial.println(sincronizacao);
sincronizacao = sincronizacao+",";
//Define variaveis e valores e seta os mesmo!!
int goOn = 1; int pos1=0; int pos2 = sincronizacao.length();
while( goOn == 1 ) {
pos1 = sincronizacao.lastIndexOf(",", pos2);
pos2 = sincronizacao.lastIndexOf(",", pos1 - 1);
if( pos2 <= 0 ) goOn = 0;
String tmp = sincronizacao.substring(pos2 + 1, pos1);
String nome = tmp.substring(0,tmp.indexOf(":"));
String valor = tmp.substring(tmp.indexOf(":")+1);
Serial.println("nome: " + nome + " valor: " + valor);
//comparaçoes como essa:
//if (nome == "L1")digitalWrite(L1, valor.toInt());
}
}