Ich habe eine json fehlt ZitateJava Regex Wörter, die Zahlen sind nicht
{
data: [{
timestamp: 1467720920,
val: {
min: 6.90,
max: 7.25,
avg: 7.22
},
temp: {
min: 75.49,
max: 75.49,
avg: 75.49
},
gps: {
lat: 0.707581,
long: -1.941864,
hdop: 2.54,
ttf: 49.4
}
}],
id: A1000049A6248C,
groupId: HU5PPC1E,
rssi: -93,
cell: {
timestamp: 1467731669,
rssi: -93,
lat: 0.735554,
long: -1.974655
}
}
}
Ich brauche Anführungszeichen links von Kolon und allen Wörtern um all die Worte zu fassen, die nicht reine Zahlen rechts vom Doppelpunkt. Also brauche ich Zitate um A1000049A6248C aber nicht -1.974655. Wie mache ich eine Regex, um dies in Java zu tun? Ich habe versucht,
json.replaceAll("(\\w+|[+-]([0-9]*[.])?[0-9]+)", "\"$1\"");
, die jedes Wort in Anführungszeichen gesetzt werden. Ich habe auch versucht, so etwas wie dieses Wort zu erhalten, die nicht alle Zahlen json.replaceAll("\\b(?!\\d*)\\b", "\"$1\"");
Erwartetes Format kann
{
"data": [
{
"timestamp": 1463494202,
"val": {
"min": 6.75,
"max": 7.19,
"avg": 7.14
},
"temp_int": {
"min": 54.28,
"max": 54.28,
"avg": 54.28
},
"gps": {
"lat": 0.711407,
"long": -1.460091,
"hdop": 1.42,
"ttf": 42
}
}
],
"id": "A1000049A624D1",
"groupId": "299F7G5AR",
"rssi": -83,
"cell": {
"timestamp": 1463501353,
"rssi": -83,
"lat": 0,
"long": 0
}
}
Ein regulärer Ausdruck könnte den Job erledigen, aber ich muss fragen, warum? Reguläre Ausdrücke können sehr teuer sein. Es sieht so aus, als ob Sie versuchen, die korrekte Formatierung in Ihre JSON-Zeichenfolge zu injizieren, aber warum ist sie nicht richtig formatiert? – Bryan
Seine fehlenden Anführungszeichen, und ich muss mit den Zahlen als Zahlen und nicht als Strings umgehen, werde ich wahrscheinlich nur Zitate um alle Wörter setzen und Integer.parseInt() verwenden – gary69
Ich meinte, warum nicht die Strings Zitate haben bereits? Haben Sie eine Kontrolle darüber, wie der String formatiert wird? Wenn ja, warum nicht eine Bibliothek wie [Gson] (https://github.com/google/gson) verwenden, um eine korrekt formatierte Zeichenfolge für Sie zu generieren? – Bryan