exception (11.02.2014)
-
11.02.2014, 21:45 #1
Suche Pattern für JSON String
Hey,
folgender String(.json File was dann mit JavaScriptSerializer ausgelesen wird):
{
"realm":{"name":"Frostwolf","slug":"frostwolf"},
"alliance":{"auctions":[
{"auc":61861645,"item":74700,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":46616,"buyout":51796,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":281448192},
{"auc":61536691,"item":34086,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":110075,"buyout":120050,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":924187904},
{"auc":61862171,"item":74700,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":46616,"buyout":51796,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":1790711168},
{"auc":61536704,"item":34086,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":110075,"buyout":120050,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":2116196096},
{"auc":61863046,"item":74710,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":115107,"buyout":117485,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":1272660864},
{"auc":61536469,"item":44087,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":440000,"buyout":450000,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":0}]}
}
Versuche schon seit Stunden den Inhalt zwischen [ und ] via RegEx zu bekommen.
Sprich, als Output will ich folgendes haben:
{"auc":61861645,"item":74700,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":46616,"buyout":51796,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":281448192},
{"auc":61536691,"item":34086,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":110075,"buyout":120050,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":924187904},
{"auc":61862171,"item":74700,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":46616,"buyout":51796,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":1790711168},
{"auc":61536704,"item":34086,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":110075,"buyout":120050,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":2116196096},
{"auc":61863046,"item":74710,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":115107,"buyout":117485,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":1272660864},
{"auc":61536469,"item":44087,"owner":"Pétbank","ownerRealm":"Frostwolf","bid":440000,"buyout":450000,"quantity":1,"timeLeft":"VERY_LONG","rand":0,"seed":0}
Habe schon etliche Codes probiert aber es klappt einfach nicht...
MfG
Edit:
Super, danke dir!Geändert von exception (11.02.2014 um 22:39 Uhr)
Ich will Geld haben und zwar so viel, das ich auch mal sagen kann das es Wichtigeres gibt...
-
11.02.2014, 22:16 #2
- Registriert seit
- 19.11.2011
- Beiträge
- 2.128
Thanked 1.936 Times in 1.180 PostsAW: Suche Pattern
Dim S As String = Regex.Match(DeinString, "auctions"":\[([^]]+)").Groups(1).Value
Falls Du noch Fragen hast, gerneGeändert von !lkay (11.02.2014 um 22:18 Uhr)
-
The Following User Says Thank You to !lkay For This Useful Post:
-
12.02.2014, 00:22 #3
- Registriert seit
- 18.11.2011
- Beiträge
- 226
Thanked 165 Times in 82 PostsAW: Suche Pattern für JSON String
Wieso keinen JSON serializer nutzen?
-
The Following User Says Thank You to 3lit For This Useful Post:
rVs14 (12.02.2014)
-
12.02.2014, 01:05 #4
AW: Suche Pattern für JSON String
Tu ich ja, wollte nur den Abschnitt jeder Fraktion einzeln auslesen.
Falls es wen interessiert, so kann man das WoW-Auktionshaus auslesen:
Public Class jsonKeys
Public auc As String
Public item As String
Public owner As String
Public ownerRealm As String
Public bid As String
Public buyout As String
Public quantity As String
Public timeleft As String
Public rand As String
Public seed As String
End Class
Public Sub loadAuctionData()
Try
fullSource = wClient.DownloadString("http://eu.battle.net/auction-data/47779fa95e3f2cccb9d866fd07e30e2f/auctions.json")
Catch ex As Exception
MessageBox.Show("Error 001")
Exit Sub
End Try
Try
allianceSource = "[" & Regex.Match(fullSource, "alliance"":{""auctions"":\[([^]]+)").Groups(1).Value & "]"
hordeSource = "[" & Regex.Match(fullSource, "horde"":{""auctions"":\[([^]]+)").Groups(1).Value & "]"
neutralSource = "[" & Regex.Match(fullSource, "neutral"":{""auctions"":\[([^]]+)").Groups(1).Value & "]"
Catch ex As Exception
MessageBox.Show("Error 002")
Exit Sub
End Try
Try
serializer = New JavaScriptSerializer
serializer.MaxJsonLength = Integer.MaxValue
allianceAuctions = serializer.Deserialize(Of List(Of jsonKeys))(allianceSource)
allianceCount = allianceAuctions.Count
serializer = New JavaScriptSerializer
serializer.MaxJsonLength = Integer.MaxValue
hordeAuctions = serializer.Deserialize(Of List(Of jsonKeys))(hordeSource)
hordeCount = hordeAuctions.Count
serializer = New JavaScriptSerializer
serializer.MaxJsonLength = Integer.MaxValue
neutralAuctions = serializer.Deserialize(Of List(Of jsonKeys))(neutralSource)
neutralCount = neutralAuctions.Count
Catch ex As Exception
MessageBox.Show("Error 003")
Exit Sub
End Try
End SubGeändert von exception (12.02.2014 um 01:07 Uhr)
Ich will Geld haben und zwar so viel, das ich auch mal sagen kann das es Wichtigeres gibt...
-
12.02.2014, 01:28 #5
- Registriert seit
- 15.11.2011
- Beiträge
- 6.219
- Blog Entries
- 5
Thanked 9.133 Times in 3.007 PostsAW: Suche Pattern für JSON String
Was um alles in der Welt machst du da mit den Regex-Pattern? JSON wurde erfunden, damit man solche Frickeleien eben nicht mehr machen muss: Am einen Ende wird serialisiert, als JSON übertragen und am anderen Ende kommt wieder ein Objekt raus mit dem man direkt weiterarbeiten kann. Mit irgendwas einzeln auslesen hat das auch nix zutun, da bekommst du dann halt einen Array mit den jeweiligen Schlüsseln und fertig.
Regex hat bei dem was du vor hast überhaupt nichts verloren. Und wenn man es einsetzt, prüft man ob das pattern matcht bzw. man prüft den Array mit den Ergebnissen. Einfach alles in einen einen TryCatch-Block zu pfeffern ist sehr schlechter Codingstil und kein vernünftiges Errorhandling, das solltest du dir abgewöhnen.
-
The Following 6 Users Say Thank You to DMW007 For This Useful Post:
Benzol (06.06.2014), Festplatte (24.02.2014), KingofRapx3 (23.05.2014), SeBi (12.02.2014), TomatenKetchup (15.02.2014), xOneDirectionx (12.02.2014)
Ähnliche Themen
-
Was ist der Unterschied zwischen String und string?
Von Sido im Forum .NetAntworten: 1Letzter Beitrag: 16.12.2013, 09:14 -
VB.Net Json String richtig parsen???
Von soulreafer im Forum .NetAntworten: 1Letzter Beitrag: 06.07.2013, 17:15 -
[S] Pattern
Von Mentos im Forum HochsprachenAntworten: 2Letzter Beitrag: 08.02.2013, 01:42
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.