[JSON] Wie Splitten?

manniL|

Mitglied
Heyho Leute,

ich wollte fragen wie man diesen JSON Code am besten splitten könnte:
[XML][{"eg_transactionid":"73797","eg_from":"3647063","eg_fromusername":".M\u00f8rris'","eg_to":"604972","eg_tousername":"ManniL","amount":"26","note":"","dateline":"1317131649"},{"eg_transactionid":"73796","eg_from":"604972","eg_fromusername":"ManniL","eg_to":"3493469","eg_tousername":".-ExPeN\u0099","amount":"50","note":"Back 4 Intro","dateline":"1317131002"},{"eg_transactionid":"73586","eg_from":"3288141","eg_fromusername":"Roach'","eg_to":"604972","eg_tousername":"ManniL","amount":"420","note":"","dateline":"1316981450"},{"eg_transactionid":"73470","eg_from":"3575360","eg_fromusername":"ArianaGrande.","eg_to":"604972","eg_tousername":"ManniL","amount":"65","note":"","dateline":"1316951200"},{"eg_transactionid":"73463","eg_from":"3003833","eg_fromusername":"Dustin22","eg_to":"604972","eg_tousername":"ManniL","amount":"35","note":"","dateline":"1316947959"},[/XML]

Ich möchte diesen in ein jTextPane einfügen. Am wichtigsten ist: eg_tousername, amount, eg_fromusername, note.

MfG

manniL
 

eRaaaa

Top Contributor
Beispiel anhand deines Json-Strings:
Java:
public class App {

	public static void main(String[] args) throws Exception {
		String json = "[{\"eg_transactionid\":\"73797\",\"eg_from\":\"3647063\",\"eg_fromusername\":\".M\u00f8rris'\",\"eg_to\":\"604972\",\"eg_tousername\":\"ManniL\",\"amount\":\"26\",\"note\":\"\",\"dateline\":\"1317131649\"},{\"eg_transactionid\":\"73796\",\"eg_from\":\"604972\",\"eg_fromusername\":\"ManniL\",\"eg_to\":\"3493469\",\"eg_tousername\":\".-ExPeN\u0099\",\"amount\":\"50\",\"note\":\"Back 4 Intro\",\"dateline\":\"1317131002\"},{\"eg_transactionid\":\"73586\",\"eg_from\":\"3288141\",\"eg_fromusername\":\"Roach'\",\"eg_to\":\"604972\",\"eg_tousername\":\"ManniL\",\"amount\":\"420\",\"note\":\"\",\"dateline\":\"1316981450\"},{\"eg_transactionid\":\"73470\",\"eg_from\":\"3575360\",\"eg_fromusername\":\"ArianaGrande.\",\"eg_to\":\"604972\",\"eg_tousername\":\"ManniL\",\"amount\":\"65\",\"note\":\"\",\"dateline\":\"1316951200\"},{\"eg_transactionid\":\"73463\",\"eg_from\":\"3003833\",\"eg_fromusername\":\"Dustin22\",\"eg_to\":\"604972\",\"eg_tousername\":\"ManniL\",\"amount\":\"35\",\"note\":\"\",\"dateline\":\"1316947959\"}]";
		Type collectionType = new TypeToken<Collection<Transaction>>(){}.getType();
		Collection<Transaction> transactions = new Gson().fromJson(json, collectionType);
		for (Transaction transaction : transactions) {
			System.out.println(transaction);
		}
	}

}
class Transaction{
	//evtl. namen + datentyp anpassen TODO
	@SerializedName("eg_transactionid")
	String id;
	@SerializedName("eg_from")
	String from;
	@SerializedName("eg_fromusername")
	String fromuser;
	@SerializedName("eg_to")
	String to;
	@SerializedName("eg_tousername")
	String toUser;
	int amount;
	String note;
	String dateline;
	
	//getter + setter TODO
	
	@Override
	public String toString() {
		return "Transaction [id=" + id + ", from=" + from + ", fromuser="
				+ fromuser + ", to=" + to + ", toUser=" + toUser + ", amount="
				+ amount + ", note=" + note + ", dateline=" + dateline + "]";
	}
}

easy oder? :D
 

eRaaaa

Top Contributor
? Wobei gibts da jetzt genau Probleme? Du hast jetzt viele Transaction-Objekte...dort holst du dir eben mit den entsprechenden getter-Methoden (bestenfalls) die Werte und fügst sie in deine Editorpane ein ???:L:bahnhof:
 

eRaaaa

Top Contributor
Und mit welchen kann ich das anstellen (Wie gesagt, bin mit getter und setter nicht gerade sehr vertraut ^^).

? Du bist mit gettern+settenr nicht vertraut, willst aber eine Anwendung mit grafischer Oberfläche und Parsen von JSON-Strings erstellen? oO

Und du kannst vlt auch anfangen etwas ausführlichere Posts zu schreiben, denn ein
"aber wie füge ich jetzt die Transactiondetails in das Editorpane ein? " darauf kann man jetzt antwortne wie man lustig ist.
Wie soll das Ganze denn im Editorpane dargestellt werden? Wie sieht dein bisheriger Code aus etc.
How to Use Editor Panes and Text Panes (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
hilft das vlt ?
 

manniL|

Mitglied
Oh man, sry.

Habe ausversehen als String transaction, statt transactions benutzt und deshalb nur eine Transaktion angezeigt bekommen.

Danke, ist erledigt :)
 

manniL|

Mitglied
Eigentlich funktionier nun Alles, nur das Problem ist folgendes:

Java:
   String json = builder.toString(); 
		     Type collectionType = new TypeToken<Collection<Transaction>>(){}.getType();
		        Collection<Transaction> transactions = new Gson().fromJson(json, collectionType);
		        for (Transaction transaction : transactions) {
				      jTextPane1.setText(transactions.toString());
		        }

		        
		        

		    }
            class Transaction{
		    //evtl. namen + datentyp anpassen TODO
		    @SerializedName("eg_fromusername")
		    String fromuser;
		    int amount;
		    String note;
		    
		    //getter + setter TODO
		    
		    @Override
		    public String toString() {
		        return "User="
		                + fromuser + " Amount=" + amount + "e*G" + " Note=" + note + "\n";
		    
		    
		}
            }

Mit dem Code bekomme ich folgendes Ergebnis:
Code:
[User=XYZ Amount=XYZ Note=XYZ
,Schema wie oben

Wie bekomm ich nun die Brackets und die Kommas weg?
 

eRaaaa

Top Contributor
Indem du versuchst du verstehen was der Code macht,.
Java:
  for (Transaction transaction : transactions) {
                      jTextPane1.setText(transactions.toString());
                }

jTextPane1.setText(transactions.toString());
-->
jTextPane1.setText(transaction.toString());

(wobei das setText wenig Sinn macht innerhalb einer Schleife.....)
 

eRaaaa

Top Contributor
Was du suchst ist so etwas wie eine append(anhänge)-Methode!
Die gibts so aber nicht bei einem EditorPane wie bei der Textarea.
Das hat aber alles jetzt nichts mehr mit JSON bzw dem eigentlichen Thema zu tun. Das sind Swing-Grundlagen
Du kannst dir über getDocument das Dokument holen und dann dort insertString aufrufen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Json Objekt sinnvoll plätten? XML & JSON 1
W com.android.volley.ParseError: org.json.JSONException: End of input at character 0 of XML & JSON 6
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
mananana Frage zu JSON XML & JSON 3
wofus JSON filtern nach bestimmten Wert XML & JSON 7
N JSON export String Unicode? XML & JSON 6
L Json reader XML & JSON 15
megusta JSON umschreiben (converter)? XML & JSON 4
P verschachteltes json verändern XML & JSON 3
Avalon JSON flatten und wieder in DTO konvertieren XML & JSON 21
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
Trèfle Formatierung v. JSON File XML & JSON 7
M json page 2 auslesen XML & JSON 1
K JSON mit GSON nutzen XML & JSON 4
S Java REST Client + Json XML & JSON 8
W Search Value in Json XML & JSON 6
K JSON-Bibliothek XML & JSON 5
M Großes Json Objekt benutzen XML & JSON 5
M Json auslesen XML & JSON 7
M Xml oder Json? XML & JSON 15
J JSON zu Java mit der GSON Google API XML & JSON 0
G Jackson JSON: Dynamische Serialisierung XML & JSON 6
W Json von URL Lesen (mit Gson Library) XML & JSON 3
W Json von URL Lesen XML & JSON 2
L Jackson JSON: Probleme beim einlesen XML & JSON 1
J JSon-Converter gesucht XML & JSON 2
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
J JSon <-> XML zwecks Validierung XML & JSON 4
G Mit JSON Java und C# verbinden XML & JSON 4
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
D xhtml Dateien splitten via DOM Tree XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben