Related
I am trying to retrieve the current news via API Call from the page https://newsapi.org. This has all worked well so far, but sometimes I can't retrieve certain values even though they are spelled correctly.
At the moment I am not able to retrieve the description and urlToImage. Thank you in advance....
This is my current code:
import SwiftUI
struct Response: Codable {
var articles: [Article]
}
struct Article: Codable {
struct Source: Codable {
var name: String
}
var source: Source
var title: String
// var description: String
var url: URL
//var urlToImage: URL
var content: String
}
struct NewsGridView: View {
#State private var articles = [Article]()
var body: some View {
ScrollView {
// Generiert einen Button für jede Schlagzeile
ForEach(articles, id: \.title) { item in
ZStack {
Rectangle()
.foregroundColor(Color(.systemGray6))
.cornerRadius(15)
.frame(width: 295, height: 350, alignment: .center)
.shadow(radius: 5)
VStack {
Text(item.title)
.foregroundColor(.black)
.fontWeight(.bold)
.frame(width: 260)
.padding(.horizontal, 25)
}
}
}
.task {
await loadData()
}
}
}
func loadData() async {
guard let url = URL(string: "https://newsapi.org/v2/top-headlines?country=de&apiKey=--API KEY--") else {
print("Invalid URL")
return
}
do {
let (data, _) = try await URLSession.shared.data(from: url)
if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
articles = decodedResponse.articles
}
} catch {
print("Error")
}
}
}
That’s what it prints when I add
print(String(data: data, encoding: .utf8))
Optional("{\"status\":\"ok\",\"totalResults\":34,\"articles\":[{\"source\":{\"id\":null,\"name\":\"tagesschau.de\"},\"author\":\"tagesschau\",\"title\":\"Krieg gegen die Ukraine: Berichte über weitere Massengräber bei Mariupol | tagesschau.de - tagesschau.de\",\"description\":\"Satellitenbildern zufolge soll es im Großraum Mariupol weitere Massengräber geben. Derweil wird ein neuer Fluchtkorridor aus der belagerten Hafenstadt vorbereitet, während sich russische Truppen im Osten des Landes festsetzen.\",\"url\":\"https://www.tagesschau.de/ausland/europa/ukraine-mariuopol-massengraeber-101.html\",\"urlToImage\":\"https://www.tagesschau.de/multimedia/bilder/mariupol-graeber-101~_v-original.jpg\",\"publishedAt\":\"2022-04-23T02:51:44Z\",\"content\":\"Satellitenbildern zufolge soll es im Großraum Mariupol weitere Massengräber geben. Derweil wird ein neuer Fluchtkorridor aus der belagerten Hafenstadt vorbereitet, während sich russische Truppen im O… [+5484 chars]\"},{\"source\":{\"id\":null,\"name\":\"Www.fr.de\"},\"author\":null,\"title\":\"Frankreich-Wahl: TV-Duell Macron – Le Pen - eine Umfrage zeigt klaren Sieger - fr.de\",\"description\":\"Vor der Frankreich-Wahl 2022 liefern sich Emmanuel Macron und Marine Le Pen in einem TV-Duell einen harten Schlagabtausch.\",\"url\":\"https://www.fr.de/politik/stichwahl-paris-frankreich-wahl-2022-macron-le-pen-tv-duell-news-tv-russland-91489350.html\",\"urlToImage\":\"https://www.fr.de/bilder/2022/04/20/91489350/28696175-emmanuel-macron-und-marine-le-pen-im-tv-duell-zur-frankreich-wahl-2022-1dfe.jpg\",\"publishedAt\":\"2022-04-23T02:49:00Z\",\"content\":\"<ol><li>Startseite</li><li>Politik</li></ol>Erstellt: 23.04.2022, 04:49 Uhr\\r\\nVon: Andreas Apetz\\r\\nKommentareTeilen\\r\\nVor der Frankreich-Wahl 2022 liefern sich Emmanuel Macron und Marine Le Pen in einem… [+9368 chars]\"},{\"source\":{\"id\":null,\"name\":\"N-tv.de\"},\"author\":\"n-tv NACHRICHTEN\",\"title\":\"Vermittlung im Ukraine-Krieg: UN-Generalsekretär besucht nach Moskau auch Kiew - n-tv NACHRICHTEN\",\"description\":\"Ehemalige hochrangige UN-Mitarbeiter erhöhen den Druck auf Generalsekretär Guterres: In einem Brief fordern sie ihn zu mehr Engagement auf, um an einer politischen Lösung im Ukraine-Krieg mitzuwirken. Nun wird bekannt, dass er die Hauptstädte beider Kriegspar…\",\"url\":\"https://www.n-tv.de/politik/UN-Generalsekretaer-besucht-nach-Moskau-auch-Kiew-article23284809.html\",\"urlToImage\":\"https://bilder3.n-tv.de/img/incoming/crop23284810/0221323798-cImg_16_9-w1200/283315222.jpg\",\"publishedAt\":\"2022-04-23T01:31:00Z\",\"content\":\"Ehemalige hochrangige UN-Mitarbeiter erhöhen den Druck auf Generalsekretär Guterres: In einem Brief fordern sie ihn zu mehr Engagement auf, um an einer politischen Lösung im Ukraine-Krieg mitzuwirken… [+1887 chars]\"},{\"source\":{\"id\":null,\"name\":\"News.de\"},\"author\":\"roj/news.de\",\"title\":\"Erdnahe Asteroiden heute: Potenziell gefährlich! DIESE Asteroiden nähern sich der Erde - m.news.de\",\"description\":\"Mit \\\"(2001 XP31)\\\" und \\\"(2015 BK515)\\\" erreichen heute - neben 9 weiteren Asteroiden - 2 potenziell gefährliche Asteroiden den erdnächsten Punkt auf ihrer Umlaufbahn. Ein Überblick über die aktuell größten Asteroiden in Erdnähe und potenzielle Gefahren.\",\"url\":\"https://www.news.de/panorama/856160169/asteroid-heute-am-23-04-2022-in-erdnaehe-nasa-liste-potenziell-gefaehrlicher-asteroiden-mit-groesse-und-entfernung-zur-erde-aktuell/1/\",\"urlToImage\":\"https://media.news.de/resources/thumbs/52/e6/857718024_736x414/welche-asteroiden-sind-heute-in-erdnaehe-1646312378.jpg\",\"publishedAt\":\"2022-04-23T00:30:24Z\",\"content\":\"Mit \\\"(2001 XP31)\\\" und \\\"(2015 BK515)\\\" erreichen heute - neben 9 weiteren Asteroiden - 2 potenziell gefährliche Asteroiden den erdnächsten Punkt auf ihrer Umlaufbahn. Ein Überblick über die aktuell grö… [+6164 chars]\"},{\"source\":{\"id\":\"spiegel-online\",\"name\":\"Spiegel Online\"},\"author\":\"DER SPIEGEL\",\"title\":\"»Irrsinniger Krieg«: Tinkoff-Bank will sich nach Putin-Kritik ihres Gründers umbenennen - DER SPIEGEL\",\"description\":\"Die russische Tinkoff-Bank wird bald anders heißen. Der neue Name ist vermutlich eine Reaktion auf die deutlichen Worte, des Firmengründers Oleg Tinkow – er hatte das »Massaker« in der Ukraine angeprangert.\",\"url\":\"https://www.spiegel.de/wirtschaft/unternehmen/russland-ukraine-krieg-tinkoff-bank-will-sich-nach-kritik-von-oleg-tinkow-an-wladimir-putin-umbenennen-a-5cedb88f-20cf-4afe-8737-a7c07090ee5d\",\"urlToImage\":\"https://cdn.prod.www.spiegel.de/images/d22b0560-69af-4f64-8025-ee0c9bc043e7_w1280_r1.77_fpx61_fpy50.jpg\",\"publishedAt\":\"2022-04-22T23:28:34Z\",\"content\":\"Nach der scharfen Kritik des Bankiers Oleg Tinkow am Ukrainekrieg hat sein Finanzinstitut, die Tinkoff-Bank, eine Umbenennung bekannt gegeben. »Das Unternehmen hat sich lange auf den Schritt vorberei… [+1607 chars]\"},{\"source\":{\"id\":null,\"name\":\"BUNTE.de\"},\"author\":\"Anja Wöhrer\",\"title\":\"Herzogin Kate & Prinz William: Zauberhafte Geburtstagsaufnahmen: Louis wird 4! - BUNTE.de\",\"description\":\"Der jüngste Sohn der Cambridges wird vier Jahre alt. Mit neuen, zuckersüßen Fotos von Prinz Louis bezaubern uns Herzogin Kate und Prinz William.\",\"url\":\"https://www.bunte.de/royals/britisches-koenigshaus/herzogin-kate-prinz-william-zauberhafte-geburtstagsaufnahmen-louis-wird-4.html\",\"urlToImage\":\"https://images.bstatic.de/47tQlSeaxunqcv1Dz1ru868R1Ok=/1200x630/filters:focal(391x388:411x408)/images/f2da2f5e/6197/436f/86b2/656c17fd88c3.jpg\",\"publishedAt\":\"2022-04-22T22:27:40Z\",\"content\":\"Zwei Tage nachdem Queen Elizabeth II. (96) ihren 96. Geburtstag feierte, ist nun ihr Urenkel Prinz Louis (4) an der Reihe. Am Samstag (23. April) wird der jüngste Sprössling von Prinz William (39) un… [+496 chars]\"},{\"source\":{\"id\":null,\"name\":\"N-tv.de\"},\"author\":\"n-tv NACHRICHTEN\",\"title\":\"Wilder Playoff-Showdown: Eisbären rupfen die Adler in neun Minuten - n-tv NACHRICHTEN\",\"description\":\"Die Favoriten auf die deutsche Eishockeymeisterschaft haben sich in ihren Playoff-Halbfinals trotz Rückstanden erneut durchgesetzt. Am Sonntag kann bereits eine Entscheidung fallen.\",\"url\":\"https://www.n-tv.de/sport/Eisbaeren-rupfen-die-Adler-in-neun-Minuten-article23284736.html\",\"urlToImage\":\"https://bilder2.n-tv.de/img/incoming/crop23284733/1501323191-cImg_16_9-w1200/0810e799ff5d25710b4c2dafa7320f50.jpg\",\"publishedAt\":\"2022-04-22T21:02:30Z\",\"content\":\"Die Favoriten auf die deutsche Eishockeymeisterschaft haben sich in ihren Playoff-Halbfinals trotz Rückstanden erneut durchgesetzt. Am Sonntag kann bereits eine Entscheidung fallen.\\r\\nMeister Eisbären… [+2624 chars]\"},{\"source\":{\"id\":null,\"name\":\"Www.ndr.de\"},\"author\":\"Florian Neuhauss\",\"title\":\"FC Barcelona nimmt die VfL-Frauen vor Rekordkulisse auseinander - NDR.de\",\"description\":\"Es hätte der Abend ihres Lebens als Fußballerinnen werden sollen - vor der Rekordkulisse von 91.648 Zuschauern im Halbfinal-Hinspiel der Champions League beim FC Barcelona erlebten die Spielerinnen des VfL Wolfsburg allerdings ein Debakel. Mit dem 1:5 (0:4) w…\",\"url\":\"https://www.ndr.de/sport/fussball/FC-Barcelona-nimmt-vor-Rekordkulisse-die-VfL-Frauen-auseinander,wolfsburg17760.html\",\"urlToImage\":\"https://www.ndr.de/sport/fussball/wolfsburg17762_v-contentxl.jpg\",\"publishedAt\":\"2022-04-22T20:30:49Z\",\"content\":\"Stand: 22.04.2022 22:21 Uhr\\r\\nEs hätte der Abend ihres Lebens als Fußballerinnen werden sollen - vor der Rekordkulisse von 91.648 Zuschauern im Halbfinal-Hinspiel der Champions League beim FC Barcelon… [+4647 chars]\"},{\"source\":{\"id\":\"spiegel-online\",\"name\":\"Spiegel Online\"},\"author\":\"DER SPIEGEL\",\"title\":\"Fußball-Bundesliga: Kruse-Dreierpack sorgt für Wolfsburger Glücksgefühle - DER SPIEGEL\",\"description\":\"Allein für diesen Abend hat sich der Winter-Transfer von Max Kruse nach Wolfsburg schon gelohnt. Gegen Mainz 05 traf er dreimal – und bringt den VfL damit dem Klassenerhalt ein ganzes Stück näher.\",\"url\":\"https://www.spiegel.de/sport/fussball/vfl-wolfsburg-besiegt-mainz-05-vor-allem-dank-max-kruse-a-c6083ce2-5aa2-433b-bda6-2ef9a3ce22a5\",\"urlToImage\":\"https://cdn.prod.www.spiegel.de/images/9139e7a4-81c2-455a-908b-cd268792b31b_w1280_r1.77_fpx62_fpy14.jpg\",\"publishedAt\":\"2022-04-22T20:27:07Z\",\"content\":\"Angeführt von Dreifachtorschütze Max Kruse hat ein wie entfesselnd aufspielende VfL Wolfsburg den vorentscheidenden Schritt zum Klassenerhalt in der Fußball-Bundesliga gemacht. Die Niedersachsen ließ… [+2011 chars]\"},{\"source\":{\"id\":null,\"name\":\"merkur.de\"},\"author\":null,\"title\":\"Ukraine-News: Russland räumt erstmals „Moskwa“-Verluste ein - Ausländische Kämpfer in Stahlwerk eingeschlossen - Merkur.de\",\"description\":\"Selenskyj sagt, Mariupol widersetze sich weiter Russland. Ein Pro-Kreml-Kanal veröffentlichte kurzeitig neue Todeszahlen der russischen Seite. News-Ticker.\",\"url\":\"https://www.merkur.de/politik/kiew-grossoffensive-ukraine-krieg-russland-news-aktuell-mariupol-putin-selenskyj-angriffe-zr-91491144.html\",\"urlToImage\":\"https://www.merkur.de/bilder/2022/04/21/91491144/28676040-das-russische-flaggschiff-moskwa-soll-durch-ukrainischen-beschuss-zerstoert-worden-sein-nun-wirft-die-ukraine-russland-einen-vergeltungsversuch-vor-1YzFroI9LTfe.jpg\",\"publishedAt\":\"2022-04-22T19:41:44Z\",\"content\":\"<ol><li>Startseite</li><li>Politik</li></ol>Erstellt: 23.04.2022, 04:50 Uhr\\r\\nVon: Richard Strobl, Patrick Mayer, Katharina Haase, Stephanie Munk, Christoph Gschoßmann, Fabian Müller\\r\\nKommentareTeilen… [+25691 chars]\"},{\"source\":{\"id\":null,\"name\":\"STERN.de\"},\"author\":\"STERN.de\",\"title\":\"Olaf Scholz verteidigt Waffen-Strategie: \\\"Es darf keinen Atomkrieg geben\\\" - STERN.de\",\"description\":\"Viele Länder liefern schwere Waffen an die Ukraine. Bundeskanzler Olaf Scholz bleibt aber zurückhaltend. In einem Interview lässt er durchblicken, was dah...\",\"url\":\"https://www.stern.de/politik/deutschland/olaf-scholz-verteidigt-waffen-strategie---es-darf-keinen-atomkrieg-geben--31799924.html\",\"urlToImage\":\"https://image.stern.de/31799964/t/wx/v2/w1440/r1.7778/-/olaf-scholz.jpg\",\"publishedAt\":\"2022-04-22T17:41:00Z\",\"content\":\"22.04.2022, 19:41 Uhr\\r\\n 3 Min. Lesezeit\\r\\nFrankreich, Tschechien, die Niederlande und sogar das kleine Estland: Alle liefern sie schwere Waffen. Olaf Scholz ist weiter zurückhaltend. In einem Intervie… [+5426 chars]\"},{\"source\":{\"id\":null,\"name\":\"SPORT1\"},\"author\":\"SPORT1\",\"title\":\"Formel 1 Qualifying LIVE: Verstappen holt Pole für Sprint-Rennen! F1 Heute im TV, Stream, Ticker - SPORT1\",\"description\":\"Ferrari geht auf seiner Hausstrecke in Imola als Favorit ins Wochenende. Aber nicht nur ein Crash von Carlos Sainz dämpft die Stimmung. Auch Charles Leclerc wird übertrumpft.\",\"url\":\"https://www.sport1.de/news/motorsport/formel1/2022/04/formel-1-qualifying-in-imola-live-startzeit-ubertragung-im-tv-stream-ticker\",\"urlToImage\":\"https://reshape.sport1.de/c/t/da4cf21c-5f70-4027-b661-13b35593be61/1200x630\",\"publishedAt\":\"2022-04-22T17:31:42Z\",\"content\":\"Heimspiel für Ferrari beim Großen Preis der Emilia-Romagna!\\r\\nAuf der ersten Europa-Station in dieser Formel-1-Saison geht es ins Autodromo Enzo e Dino Ferrari in Imola - nicht nur auf die italienisch… [+3476 chars]\"},{\"source\":{\"id\":null,\"name\":\"YouTube\"},\"author\":null,\"title\":\"LIVE : Der Countdown zu Show 8 | Let\'s Dance - RTL\",\"description\":\"Alle News und Infos zu Let\'s Dance: https://www.rtl.de/cms/sendungen/lets-dance.html?utm_source=youtube&utm_medium=editorial&utm_campaign=beschreibung&utm_te...\",\"url\":\"https://www.youtube.com/watch?v=fdVGuYKWUBA\",\"urlToImage\":\"https://i.ytimg.com/vi/fdVGuYKWUBA/hqdefault.jpg\",\"publishedAt\":\"2022-04-22T17:12:38Z\",\"content\":null},{\"source\":{\"id\":null,\"name\":\"Www.ndr.de\"},\"author\":null,\"title\":\"Corona-News-Ticker: Gericht kippt Hotspot-Regelung für MV - NDR.de\",\"description\":\"Die Voraussetzungen hätten laut Gericht für die Kommunen einzeln überprüft werden müssen. Mehr Corona-News im Live-Ticker.\",\"url\":\"https://www.ndr.de/nachrichten/info/Corona-News-Ticker-Gericht-kippt-Hotspot-Regelung-fuer-MV,coronaliveticker1716.html\",\"urlToImage\":\"https://www.ndr.de/nachrichten/info/hotspot142_v-contentxl.jpg\",\"publishedAt\":\"2022-04-22T16:38:20Z\",\"content\":\"Stand: 22.04.2022 20:08 Uhr\\r\\nIm Live-Ticker informiert NDR.de Sie auch heute - am Freitag, 22. April 2022 - aktuell über die Folgen der Coronavirus-Pandemie für Niedersachsen, Schleswig-Holstein, Mec… [+21739 chars]\"},{\"source\":{\"id\":null,\"name\":\"Www.br.de\"},\"author\":\"BR24 Redaktion\",\"title\":\"Ukraine: Russland nennt erstmals konkrete Kriegsziele - br.de\",\"description\":\"Russland will neben dem Donbass auch die gesamte Schwarzmeerküste einnehmen. Unterdessen mehren sich die Hinweise auf zahlreiche Kriegsverbrechen im Krieg gegen die Ukraine. Die deutsche Wirtschaft leidet laut Bundesbank erheblich unter dem Krieg.\",\"url\":\"https://www.br.de/nachrichten/deutschland-welt/ukraine-russland-nennt-erstmals-konkrete-kriegsziele,T3kQ5Ak\",\"urlToImage\":\"https://img.br.de/9fe982aa-7dba-443e-94d0-ca6c9cf9c83c.jpeg?q=80&rect=2,280,3998,2252&w=1600&h=900\",\"publishedAt\":\"2022-04-22T16:37:41Z\",\"content\":\"In der Ukraine wird während der orthodoxen Osterfeiertage weiter gekämpft. Nach Angaben des ukrainischen Präsidenten Wolodymyr Selenskyj hat Russland den Vorschlag einer Feuerpause über die Osterfeie… [+4719 chars]\"},{\"source\":{\"id\":null,\"name\":\"t-online.de\"},\"author\":\"Nora Schiemann, Nicolas Lindken\",\"title\":\"Körpersprache-Experte über Putins Auftritt: \\\"Der schläft seit Wochen schlecht\\\" - t-online\",\"description\":\"Russische Truppen kontrollieren offenbar Mariupol, der Kreml zeigt Putins Befehl an seinen Minister. Details am Präsidenten sorgen für Spekulationen.\",\"url\":\"https://www.t-online.de/nachrichten/ausland/id_92058550/koerpersprache-experte-ueber-putins-auftritt-der-schlaeft-seit-wochen-schlecht-.html\",\"urlToImage\":\"https://bilder.t-online.de/b/92/05/90/32/id_92059032/tid_da/index.png\",\"publishedAt\":\"2022-04-22T16:34:00Z\",\"content\":\"Russische Truppen kontrollieren offenbar Mariupol, der Kreml zeigt daraufhin einen Befehl Putins. Auffällige Details sorgen jetzt für Spekulationen. Ein Experte bewertet die skurrile Szene im Video.… [+1045 chars]\"},{\"source\":{\"id\":null,\"name\":\"Jpgames.de\"},\"author\":\"Tony\",\"title\":\"Der Starttermin für das neue PlayStation Plus in Europa steht jetzt konkret fest • JPGAMES.DE - jpgames.de\",\"description\":\"Sony PlayStation hat den Start des neuen PlayStation Plus konkretisiert. Wir in Europa sind demnach als Letzte an der Reihe.\",\"url\":\"https://jpgames.de/2022/04/der-starttermin-fuer-das-neue-playstation-plus-in-europa-steht-jetzt-konkret-fest/\",\"urlToImage\":\"https://jpgames.de/wp-content/uploads/2019/03/God-of-War_2018_01-23-18_006.jpg\",\"publishedAt\":\"2022-04-22T16:28:30Z\",\"content\":\"Sony PlayStation hat den Start des neuen PlayStation Plus konkretisiert. Wir in Europa sind demnach als Letzte an der Reihe. Wie geplant beginnt das Programm in Asien (ohne Japan), wo am 23. Mai der … [+1075 chars]\"},{\"source\":{\"id\":null,\"name\":\"tagesschau.de\"},\"author\":\"tagesschau\",\"title\":\"Hohe Lebensmittelpreise: Streit über die Mehrwertsteuer | tagesschau.de - tagesschau.de\",\"description\":\"Wegen der stark steigenden Lebensmittelpreise sind Forderungen laut geworden, die Mehrwertsteuer bei Grundnahrungsmitteln auszusetzen. Wie sind die Reaktionen aus der Politik? Und was sagen Wirtschaftsexperten dazu?\",\"url\":\"https://www.tagesschau.de/wirtschaft/verbraucher/senkung-mehrwertsteuer-grundnahrungsmittel-101.html\",\"urlToImage\":\"https://www.tagesschau.de/multimedia/bilder/mehrwertsteuer-119~_v-original.jpg\",\"publishedAt\":\"2022-04-22T15:39:35Z\",\"content\":\"Wegen der stark steigenden Lebensmittelpreise sind Forderungen laut geworden, die Mehrwertsteuer bei Grundnahrungsmitteln auszusetzen. Wie sind die Reaktionen aus der Politik? Und was sagen Wirtschaf… [+5685 chars]\"},{\"source\":{\"id\":null,\"name\":\"play3.de\"},\"author\":\"Dennis Leschnikowski\",\"title\":\"The House Of The Dead Remake: PlayStation Move-Unterstützung wird nachgereicht - play3.de\",\"description\":\"In dieser Woche wurde das Remake zum düsteren Shooter \\\"The House of the Dead\\\" auch offiziell für die PlayStation 4 und weitere Plattformen angekündigt. Da es sich bei \\\"The House of the Dead\\\"\",\"url\":\"https://www.play3.de/2022/04/22/the-house-of-the-dead-remake-playstation-move-unterstuetzung-wird-nachgereicht/\",\"urlToImage\":\"https://www.play3.de/wp-content/uploads/2022/04/The-House-of-the-Dead.webp\",\"publishedAt\":\"2022-04-22T15:11:00Z\",\"content\":\"In dieser Woche wurde das Remake zum düsteren Shooter „The House of the Dead“ auch offiziell für die PlayStation 4 und weitere Plattformen angekündigt.\\r\\nDa es sich bei „The House of the Dead“ um eine… [+1880 chars]\"},{\"source\":{\"id\":null,\"name\":\"Www.zdf.de\"},\"author\":\"Zweites Deutsches Fernsehen\",\"title\":\"Russischer General äußert sich: Kriegsziel ist völlige Kontrolle über Donbass - zdf.de\",\"description\":\"Ein russischer General hat detaillierte Angaben zu Kriegszielen gemacht. Russland strebe unter anderem die vollständige Kontrolle über den gesamten Donbass und Süden des Landes an.\",\"url\":\"https://www.zdf.de/nachrichten/politik/kriegsziele-russland-ukraine-moldau-100.html\",\"urlToImage\":\"https://www.zdf.de/assets/mariupol-ukraine-100~1280x720?cb=1650639169708\",\"publishedAt\":\"2022-04-22T15:06:03Z\",\"content\":null}]}")
Use this Article model, works for me with the data you have provided.
struct Article: Codable {
struct Source: Codable {
var name: String
}
var source: Source
var title: String
var description: String
var url: URL
var urlToImage: URL
var content: String? // <-- here optional
}
You can see this at the end of the data: \"content\":null
EDIT:
Well to explain what I finally need:
We are looking for what steam tells us about an specific app, like "Dead by Daylight".
Dim address As String = "http://store.steampowered.com/api/appdetails?appids=381210&filters=basic"
Dim link As WebClient = New WebClient()
Dim info As String = link.DownloadString(address)
As result there is the following JSON-like server answer.
{"381210":{"success":true,"data":{"type":"game","name":"Dead by Daylight","steam_appid":381210,"required_age":0,"is_free":false,"dlc":[492140,509060,530710,530711,554380],"detailed_description":"<h1>Digitale Deluxe-Edition<\/h1><p><img src=\"http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/extras\/dlx_1.jpg?t=1480018883\">\r<br>The Deluxe Edition includes the base game, official soundtrack, digital art book, two masks for PAYDAY 2.<\/p><br><h1>\u00dcber das Spiel<\/h1><strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\"https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\" target=\"_blank\" rel=\"noreferrer\" >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\"bb_tag\">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt.","about_the_game":"<strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\"https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\" target=\"_blank\" rel=\"noreferrer\" >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\"bb_tag\">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt.","short_description":"Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft und T\u00f6tung zu entgehen.","supported_languages":"Englisch<strong>*<\/strong>, Franz\u00f6sisch, Italienisch, Deutsch, Spanisch, Russisch, Chinesisch (vereinfacht)<br><strong>*<\/strong>Sprachen mit voller Audiounterst\u00fctzung","header_image":"http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/header.jpg?t=1480018883","website":"http:\/\/www.deadbydaylight.com","pc_requirements":{"minimum":"<strong>Minimum:<\/strong>\r<br><ul class=\"bb_ul\"><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 & Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8120\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce GTX 460 1GB oder AMD HD 6850 1GB o\tDirectX: Version 11\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>","recommended":"<strong>Empfohlen:<\/strong>\r<br><ul class=\"bb_ul\"><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 & Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8300 oder h\u00f6her\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce 760 or AMD HD 8800 oder h\u00f6her mit 4GB RAM\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>"},"mac_requirements":[],"linux_requirements":[],"legal_notice":"Dead by Daylight ist eine Handelsmarke von Behaviour Interactive Inc. Alle anderen Handelsmarken sind Eigentum ihrer jeweiligen Inhaber. Entwickelt von Behaviour Digital und publiziert von Starbreeze Studios. Alle Rechte vorbehalten."}}}
Finally I'd like to deserialize this so each property can be accessed as a string
Like
Dim apptype as String = "game"
Dim appname as String = "Dead by Daylight"
To help visualize the class structure you need to build you can use this tool
I will assume you need to have this be dynamic (forgive my hack as I am not familar with VB and JSON) so I replace the 381210 property with a static id property name so our class/s can reflect the data more easily.
First I we get the data (JSON) parse it (yes parse) then we deserialize it into our class properties so we can access the data easily later on.
Put this section in your event (such as a button click)
'This is your JSON string from STEAM
Dim a As String = "{""381210"":{""success"":true,""data"":{""type"":""game"",""name"":""Dead by Daylight"",""steam_appid"":381210,""required_age"":0,""is_free"":false,""dlc"":[492140,509060,530710,530711,554380],""detailed_description"":""<h1>Digitale Deluxe-Edition<\/h1><p><img src=\""http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/extras\/dlx_1.jpg?t=1480018883\"">\r<br>The Deluxe Edition includes the base game, official soundtrack, digital art book, two masks for PAYDAY 2.<\/p><br><h1>\u00dcber das Spiel<\/h1><strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\""https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\"" target=\""_blank\"" rel=\""noreferrer\"" >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\""bb_tag\"">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt."",""about_the_game"":""<strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\""https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\"" target=\""_blank\"" rel=\""noreferrer\"" >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\""bb_tag\"">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt."",""short_description"":""Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft und T\u00f6tung zu entgehen."",""supported_languages"":""Englisch<strong>*<\/strong>, Franz\u00f6sisch, Italienisch, Deutsch, Spanisch, Russisch, Chinesisch (vereinfacht)<br><strong>*<\/strong>Sprachen mit voller Audiounterst\u00fctzung"",""header_image"":""http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/header.jpg?t=1480018883"",""website"":""http:\/\/www.deadbydaylight.com"",""pc_requirements"":{""minimum"":""<strong>Minimum:<\/strong>\r<br><ul class=\""bb_ul\""><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 & Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8120\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce GTX 460 1GB oder AMD HD 6850 1GB o\tDirectX: Version 11\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>"",""recommended"":""<strong>Empfohlen:<\/strong>\r<br><ul class=\""bb_ul\""><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 & Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8300 oder h\u00f6her\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce 760 or AMD HD 8800 oder h\u00f6her mit 4GB RAM\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>""},""mac_requirements"":[],""linux_requirements"":[],""legal_notice"":""Dead by Daylight ist eine Handelsmarke von Behaviour Interactive Inc. Alle anderen Handelsmarken sind Eigentum ihrer jeweiligen Inhaber. Entwickelt von Behaviour Digital und publiziert von Starbreeze Studios. Alle Rechte vorbehalten.""}}}"
'Pass the string to my parsing function (note this is parsing, below is called deserialization)
a = editJson(a)
'Create an object using Newtonsoft's Json, set Example (class) varaibles using the Json data (a)
Dim obj = JsonConvert.DeserializeObject(Of Example)(a)
'Show a message box with one of the object's names from the JSon class.
MsgBox(obj.id.data.name)
Here we need to parse out the number 381210 and replace it with our id property name
Function editJson(ByVal str As String) As String
'Get the first occurance of "
Dim first As Integer = str.IndexOf("""")
'Get the next occurance of " (3 is the starting offset)
Dim last As Integer = str.IndexOf("""", 3)
'Remove everything inside the first set of quotes
str = str.Remove(first + 1, last - 2)
'Insert ID where your number used to be (we need to do this because our JSon converter is looking for the 381210 as a proprety, but we can't easily assign a dynamic property, so instead we parse out the property name and replace it with our ID [note this id is also duplicated data as it shows up as the steam_appid]
Return str.Insert(2, "id")
End Function
Finally, we need to have our class structure match the JSON we are recieving, which can be done like this:
Public Class PcRequirements
Public Property minimum As String
Public Property recommended As String
End Class
Public Class Data
Public Property type As String
Public Property name As String
Public Property steam_appid As Integer
Public Property required_age As Integer
Public Property is_free As Boolean
Public Property dlc As Integer()
Public Property detailed_description As String
Public Property about_the_game As String
Public Property short_description As String
Public Property supported_languages As String
Public Property header_image As String
Public Property website As String
Public Property pc_requirements As PcRequirements
Public Property mac_requirements As Object()
Public Property linux_requirements As Object()
Public Property legal_notice As String
End Class
Public Class Game
Public Property success As Boolean
Public Property data As Data
End Class
Public Class Example
Public Property id As Game
End Class
Also, look at this post for an explanation to why the class structure must match. Also see this post for more information on the making the class structure.
It is worth noting the difference between parsing and deserialization in these terms parsing would be more along the lines of writing a loop to go through and read the data, splitting it into an array at each new property type; deserialization on the other hand we are putting it directly into an object (class structure) which is a much more specific term (which is why there was some confusion in the comments) this post gives a brief explanation of the difference
I am trying to load csv data in mysql using the following command:
LOAD DATA INFILE 'data-20161017.csv'
INTO TABLE books
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Data in my csv file (first 3 lines) is like:
id,provider,title,abstract,author,content,url,publish_date,publisher_name
ClippingUpload_eca3b7fc-7a37-4c3e-8b89-bf9cc157675c,Roche,Arzneimittel: Rezepte gegen Lieferengpässe,"<br>Seit letztem Sommer häufen sich Probleme bei der Lieferung von \nArzneimitteln. Die Ursachen dafür sind vielfältig\, die Lösungsvorschläge\n auch. Das Ministerium für Gesundheit will sich nun\, zusammen mit den \nAkteuren\, der Sache annehmen. Voriconazol wird im Krankenhaus zur \nBehandlung schwerer Mykosen eingesetzt. Im vergangenen Sommer jedoch \nkonnte der Hersteller über mehrere Wochen nicht liefern.",,"<br />Seit letztem Sommer häufen sich Probleme bei der Lieferung von Arzneimitteln. Die Ursachen dafür sind vielfältig\, die Lösungsvorschläge auch. Das Ministerium für Gesundheit will sich nun\, zusammen mit den Akteuren\, der Sache annehmen. Voriconazol wird im Krankenhaus zur Behandlung schwerer Mykosen eingesetzt. Im vergangenen Sommer jedoch konnte der Hersteller über mehrere Wochen nicht liefern. ""Zum Glück hatten wir bei uns einen ausreichenden Vorrat angelegt. Deshalb hatte der Ausfall keine Auswirkung auf die Behandlung unserer Patienten""\, berichtet Dr. Torsten Hoppe-Tichy\, Leiter der Krankenhausapotheke des Universitätsklinikums Heidelberg. ""Wäre der Vorrat kleiner gewesen\, hätten wir auf andere Antimykotika umstellen müssen."" In den USA sind Lieferengpässe bei Arzneimitteln schon seit längerem bekannt. In Deutschland ist das Problem im vergangenen Sommer angekommen. ""Es ist zum Tagesgeschäft geworden""\, betont Hoppe-Tichy\, der zugleich Präsident des Bundesverbands Deutscher Krankenhausapotheker (ADKA) ist. Wenn ein Arzneimittel nicht lieferbar ist\, muss die Krankenhausapotheke reagieren. Eine Option ist\, dasselbe Präparat von einem anderen Hersteller zu bekommen. Doch das ist nicht immer möglich. ""Das Antibiotikum Fosfomycin i.v. wird weltweit nur noch von einem Hersteller produziert - in Japan""\, erklärt Hoppe-Tichy. Aufgrund der weltweiten Nachfrage\, kontingentiere der Hersteller zudem seine Lieferungen. Eine weitere Option\, neben dem Import aus dem Ausland\, sei es\, den Rohstoff zu besorgen\, um das Arzneimittel in der Krankenhausapotheke selbst herzustellen. Leider seien aber auch die Rohstoffe nur noch schwer zu bekommen\, da es auch hier zu einer Mono- oder zumindest zu einer Oligopolisierung gekommen sei. Zurzeit müssten die Krankenhausapotheken das Problem auffangen\, sagt der ADKA-Präsident: ""Um auf mögliche Engpässe zu reagieren\, legen wir heute schon größere Vorräte an\, als wir eigentlich müssten - auf unsere Kosten."" Um Geld zu sparen\, hätten die Hersteller zuvor ihre Lagervorräte verkleinert. ""Sinnvoll wäre es\, die Hersteller dazu zu verpflichten\, ihre Bestände wieder zu vergrößern""\, schlägt Hoppe- Tichy vor\, ""damit nicht die Sperrung einer einzigen Charge\, zum Beispiel infolge eines Qualitätsproblems\, zu einem kompletten Lieferausfall führt."" Für die Lieferengpässe gibt es noch weitere Ursachen. Die Deutsche Gesellschaft für Hämatologie und Medizinische Onkologie (DGHO) hat sie in fünf Problembereiche gegliedert: Zunächst die Herstellung. ""Manche wichtigen Medikamente\, die schon lange auf dem Markt sind\, werden weltweit nur noch in einer oder einigen wenigen Produktionsstätten hergestellt - denn die Produktion ist kompliziert und der Gewinn vergleichsweise gering""\, erläutert Prof. Dr. med. Bernhard Wörmann\, Medizinischer Leiter der DGHO. Zweitens die Verteilung. ""Die weltweite Verteilung der Arzneimittel richtet sich auch nach dem Preis""\, sagt Wörmann. ""Je besser die Wirtschaft eines Landes dasteht\, desto weniger Lieferengpässe sind zu erwarten."" Umgekehrt bedeute das jedoch\, dass arme Länder sich manche Arzneimittel schon heute nicht mehr leisten könnten. Die dritte Ursache sei die Preisgestaltung. ""In Deutschland gibt es eine extreme Schere zwischen neuen teuren Arzneimitteln und alten billigen""\, stellt Wörmann fest. Daran hätten auch die Rabattverträge ihren Anteil. Wenn Lieferengpässe die Folge seien\, müsse man die Rabattverträge\, wie sie heute existierten\, überdenken und über eine Mindestgrenze für den Preis von Generika\, in Verbindung beispielsweise mit einer vertraglich zugesicherten Liefergarantie\, nachdenken. Viertens: Die Versorgung im Land. Wann ein Versorgungsmangel eintrete\, sei nicht definiert\, sagt Wörmann. Denn nicht jedes Arzneimittel\, das fehle\, habe Auswirkungen auf eine Therapie. ""Es gibt jedoch essenzielle Arzneimittel\, die nicht durch andere ersetzt werden können""\, betont Wörmann. ""Die DGHO hat zusammen mit den pädiatrischen Onkologen und Hämatologen eine Liste mit 25 solcher Arzneimittel verfasst."" Fehlten diese\, könne man von einem Versorgungsmangel sprechen. Und fünftens sei der Umgang mit der Zulassung von Arzneimittel zu bedenken\, denn es komme vor\, dass Hersteller die Zulassung wichtiger Medikamente zurückgäben - entweder weil sich die Produktion nicht mehr rentiere oder um mit einer anderen Indikation mehr Geld mit demselben Medikament zu verdienen\, sagt Wörmann. ""Wir können die Firmen nicht zwingen\, die Zulassung nicht zurückzugeben""\, meint er. ""Aber wir sollten überlegen\, wie es möglich sein kann\, dadurch keinen Engpass zu erzeugen."" Welches Ausmaß die Lieferengpässe umfassen\, hat die Deutsche Krankenhausgesellschaft (DKG) im vergangenen November untersucht. Eine Abfrage in etwa 100 Kliniken hat ergeben\, dass Engpässe meist plötzlich und ohne Vorabinformation der Arzneimittelhersteller auftreten. In den befragten Kliniken hätten in einem Monat durchschnittlich 25 Arzneimittel nicht oder nicht ausreichend zur Verfügung gestanden. Da die meisten Kliniken etwa 400 bis 600 verschiedene Arzneimittel einsetzten\, sei dies bereits eine relevante Größenordnung\, heißt es in ihrem Ende 2012 verfassten Positionspapier. Nach Hinweisen aus der Ärzte- und Apothekerschaft hat sich nun die Politik des Themas angenommen. In bislang zwei Spitzengesprächen im Bundesgesundheitsministerium wurden Lösungsansätze mit Vertretern von Ärzteschaft\, Apothekern\, Großhandel und pharmazeutischer Industrie diskutiert (siehe ""3 Fragen an . . .""). Im Vorfeld des letzten Gesprächs hatten sich die Vorstände der Kassenärztlichen Vereinigungen (KVen) sowie die Kassenärztliche Bundesvereinigung für eine Bevorratung von notwendigen Medikamenten ausgesprochen. Eine solche Vorratshaltung durch Hersteller und Großhandel in Deutschland sei wichtig\, da viele Pharmaunternehmen ihre Produktion ins Ausland verlagert hätten\, hatte der Vorstandsvorsitzende der KV Baden-Württemberg\, Dr. med. Norbert Metke\, erklärt\, von dem der Vorschlag gekommen war. Dass Lieferengpässe in der Tat vorkämen\, räumt auch die Pharmaindustrie ein. Der Idee einer nationalen Bevorratung mit lebenswichtigen Arzneimitteln steht sie jedoch kritisch gegenüber. Denn diese enthalte Lösungsansätze\, werfe aber auch eine ganze Reihe offener Fragen auf\, meint der Bundesverband der Pharmazeutischen Industrie. Grundsätzlich könne eine nationale Reserve wichtiger Arzneimittel zwar Lieferprobleme ausgleichen\, offen sei jedoch\, wie ein Vorrat angelegt werden solle\, wenn die Wirkstoffe auf dem Weltmarkt nicht verfügbar seien\, und wie groß die Reserve sein müsse. Auch der Verband Forschender Arzneimittelhersteller wehrt sich gegen eine gesetzliche Pflicht zur Vorratshaltung. Zudem seien die Vorschläge der Europäischen Zulassungsbehörde EMA ausreichend und zielführend. Diese veröffentliche Hinweise auf Lieferengpässe und konkrete Empfehlungen für die Ärzte\, welche Patienten bevorzugt mit den knappen Arzneimitteln behandelt werden sollten. Im Gesundheitsministerium sollen bald weitere Gespräche stattfindet. Die Notwendigkeit\, Lösungen zu finden\, beschreibt Hoppe-Tichy wie folgt: ""Noch ist kein Patient infolge von Lieferengpässen gestorben. Aber wir sollten nicht abwarten\, bis es so weit ist."" /// 3 Fragen an. . . /// Prof. Dr. med. Wolf-Dieter Ludwig\, Vorsitzender der Arzneimittelkommission der deutschen Ärzteschaft >> Sie waren bei den Gesprächen im Gesundheitsministerium dabei. Welche Lösungen wurden diskutiert\, um Lieferengpässe von Arzneimitteln künftig zu verhindern? Ludwig: Im Gespräch ist eine Liste mit essenziellen Arzneimitteln\, die medizinisch absolut notwendig sind und immer ausreichend vorhanden sein müssen. Eine solche Liste wurde für den Bereich der Onkologika bereits von der DGHO erstellt. Wir halten eine solche Liste für unbedingt erforderlich. >> Die AkdÄ hatte auch ein Register vorgeschlagen . . . Ludwig: Wir haben im Ministerium auch über die Einrichtung eines Registers gesprochen\, in dem Arzneimittel gelistet sind\, bei denen ein Lieferengpass droht. Ein ähnliches Register hat die amerikanische Arzneimittelbehörde FDA bereits in den USA eingerichtet. Pharmafirmen könnten die Bundesoberbehörden künftig darüber informieren\, wenn sie ein in das Register aufgenommenes Arzneimittel für einen Zeitraum von mehr als zwei Wochen nicht liefern können - allerdings soll dies zunächst auf freiwilliger Basis geschehen. >> Gab es weitere Ideen? Ludwig: Ja\, das Ministerium will zwei Gesetzesänderungen prüfen. Zum einen\, ob die zuständigen Landesbehörden die Hersteller dazu verpflichten können\, bestimmte Arzneimittel entsprechend ihres Bedarfs kontinuierlich zur Verfügung zu stellen. Eine entsprechende Passage war für die letzte Novelle des Arzneimittelgesetzes vorgesehen\, dann aber kurzfristig gestrichen worden. Zum anderen soll geprüft werden\, ob bei einem Versorgungsmangel Arzneimittel\, die nur im Ausland zugelassen sind\, nach Deutschland importiert werden können. <br />--------------------------------------------------------------------------------<br />",,2013-02-14T23:00:00Z,Deutsches Ärzteblatt
Primary Repository :: rochemmm_FactivaFS-RocheMMM :: HOU0000020130130e91r00037/0,Factiva,'Smart bomb' gives patients new hope,"Denison\, 66\, was the first Houston patient to join a clinical trial for what may be a breast cancer breakthrough. Denison's HER2-positive breast cancer was treated with a promising new \nmix: a combination of standard chemotherapy (docetaxel)\, the antibody \npertuzumab and a drug called T-DM1. Studies show that T-DM1\, an antibody-drug conjugate\, causes fewer and less severe side effects than standard cancer treatment.",Alyson Ward,"<p>When a mammogram revealed that Noel Denison had cancer\, the tumor in her left breast was roughly the size of a lemon. Just five months later\, it had dwindled and disappeared - likely because of a promising new drug combination researchers are calling a ""smart bomb.""</p>\n<p>Denison\, 66\, was the first Houston patient to join a clinical trial for what may be a breast cancer breakthrough.</p>\n<p>""She's the first\, and she's had a wonderful response\,"" said Denison's oncologist\, Jenny Chang\, who is director of the Methodist Cancer Center. Chang is overseeing the trial at Methodist\, which is one of two locations in the United States testing the new treatment. The other is Carolinas Hematology-Oncology Associates in Charlotte\, N.C.</p>\n<p>Denison's HER2-positive breast cancer was treated with a promising new mix: a combination of standard chemotherapy (docetaxel)\, the antibody pertuzumab and a drug called T-DM1.</p>\n<p>T-DM1 is the key new ingredient; it's a groundbreaking drug that attacks cancer cells directly\, delivering a strong dose of chemotherapy.</p>\n<p>Here's how it works: In tumors like Denison's - which represent about one-fifth of breast tumors - the cancer cells have a protein called HER2. T-DM1 docks against that protein ""like a lock and key\,"" Chang said\, and leaves the healthy cells alone. And because it goes straight to the cancer cell\, it can be given at a dose 100 to 1\,000 times higher than it could be given systemically.</p>\n<p>""It's really powerful\,"" Chang said.</p>\n<p>Denison's tumor responded to the drug combination just as it should; after just four of her six rounds of treatment\, the tumor was no longer visible to the naked eye. She had a lumpectomy in October to remove the trace that remained.</p>\n<p>""She had a sizeable cancer\, and almost none left\,"" Chang said. ""We know that in women with this kind of good response\, it almost never comes back.""</p>\n<p>TDM-1 isn't a someday drug; in fact\, it may be on the market later this year. The FDA has fast-tracked T-DM1\, giving it priority review status\, and it's expected to win the agency's approval at the end of February.</p>\n<p>Studies show that T-DM1\, an antibody-drug conjugate\, causes fewer and less severe side effects than standard cancer treatment. In many patients\, Chang said\, it's ""almost nothing.""</p>\n<p>Denison was also given standard chemotherapy\, of course\, so she experienced all the side effects of regular cancer treatment.</p>\n<p>Chang hopes the next step for her patients will be to forgo the standard chemotherapy drug and let the T-DM1 do its work. That could mean\, for some\, cancer treatment free of side effects like hair loss and nausea.</p>\n<p>""We want to give women the most effective treatment with minimal side effects\,"" Chang said\, ""and we hope to cure most women by doing it.""</p>\n<p>T-DM1 has generated a lot of excitement among patients and oncologists. And the method of docking the antibody and injecting a toxin into the cancer cell ""is being applied to different types of cancer now\,"" Chang said. ""We hope it will not only be for breast cancer\, but for different types of cancer.""</p>\n<p>Denison\, meanwhile\, is glad she's been able to return to her life and her grandchildren so quickly. She has a good reason to hope her cancer will never return. ""I would say I have the same energy level I had before\,"" she said. ""I honestly feel great.""</p>\n<p>Alyson Ward</p>",,2013-01-27T02:11:15Z,Houston Chronicle
But it is giving me following error:
ERROR 1406 (22001): Data too long for column 'id' at row 1
I also tried changing LINES TERMINATED BY '\n' to '\r' and '\r\n'
But that doesn't do anything. It's output is:
Query OK, 0 rows affected (11.16 sec) Records: 0 Deleted: 0 Skipped:
0 Warnings: 0
I tried finding my Line ending character by opening the file in Notepad++. It shows line ending character as:
Any suggestions how to import this data...?
My Database schema is like:
mysql> desc books;
+----------------+----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+----------------+------+-----+---------+-------+
| id | varchar(50) | NO | PRI | NULL | |
| provideer | varchar(20) | YES | | NULL | |
| title | varchar(200) | YES | | NULL | |
| abstract | varchar(10000) | YES | | NULL | |
| author | varchar(20) | YES | | NULL | |
| content | varchar(20) | YES | | NULL | |
| url | varchar(1000) | YES | | NULL | |
| publish_date | datetime | YES | | NULL | |
| publisher_name | varchar(20) | YES | | NULL | |
+----------------+----------------+------+-----+---------+-------+
Your id field is defined as varchar(50). Yet the value ClippingUpload_eca3b7fc-7a37-4c3e-8b89-bf9cc157675c has the length of 51, therefore it is too long for your current id field definition, hence the error message.
Before importing any files, you must make sure that the target table's definition is aligned with the data in the file to be imported.
I have an artikel description saved in an artikel table which I want to split and insert into sql table
SELECT [cBeschreibung]
FROM [dbname].[dbo].[tartikel]
where cArtNr = 'TF90062750'
The description always looks like the following.
<b>Hohe Performance</b><br \><b>Systemoptimierung mit einem Klick</b><br \><b>Übertaktungs- und Energiesparfunktionen, digitale Leistungsregelung, konfigurierbare Lüftersteuerung und flexible Netzwerk- und Audioeinstellungen</b><br \><br \>Komplexes Systemtuning mit einem Klick: Die 5-fach-Optimierung von ASUS macht aus Ihrem System einen intelligenten PC. Wichtige Parameter werden in Echtzeit dynamisch optimiert. Sie profitieren von exzellenter CPU-Leistung, Energieeinsparungen im Alltag, besonders stabiler digitaler Spannungsregelung und leiser Systemkühlung. Und jetzt werden auch Netzwerk- und Audioeinstellungen an Ihre Anwendungen angepasst. Mit der 5-fach-Optimierung ist Ihr PC für alles gerüstet – von Gaming über Unterhaltung bis hin zu Produktivitätsanwendungen.<br \><br \>- Spiele laufen flüssig, mit hoher Leistung, priorisierter Bandbreite und lebendigem Sound.<br \>- Die Lüfter bleiben bei geringer Auslastung flüsterleise und sorgen beim Gaming für maximale Kühlleistung.<br \>- Filme werden ruckelfrei wiedergegeben.<br \>- Energieeinsparungen senken die Stromkosten.<br \><br \><b>Lüftersteuerung für maximale Kühlleistung und minimale Geräuschentwicklung</b><br \><b>Fan Xpert 3</b><br \>Fan Xpert 3 ist die Schaltzentrale für drei- und vierpolige CPU- und Gehäuselüfter. Die Lüftersteuerung erfasst die Eigenschaften aller Lüfter und nimmt für jeden einzelnen angepasste Einstellungen vor, die sich an den mit Sensoren gemessenen Temperaturen in verschiedenen Zones des PCs orientieren. Auf diese Weise wird für jeden Lüfter die optimale Balance zwischen Kühlleistung und geringem Betriebsgeräusch gefunden. Fan Xpert 3 unterstützt den hardwareseitigen PWM/DC-Kombimodus bei CPU- und Gehäuselüftern. Es kann die Drehzahl des CPU-Lüfters sogar bis unter den Standard-Mindestwert verringern, sodass er besonders leise und stromsparend läuft.<br \><br \><b>Preisgekröntes UEFI-BIOS</b><br \>Das eleganteste grafische BIOS mit Maussteuerung ist jetzt noch ansprechender. Unerfahrene Anwender und routinierte Overclocker finden sich mit dem einfachen EZ-Modus und dem erweiterten Modus gleichermaßen zurecht.<br \><br \><b>Erweiterte</b><br \><b>RAM-Übertaktungsmöglichkeiten</b><br \>Jetzt können Sie Ihren Speicher auf bis zu 3.200 MHz übertakten. Unser exklusives T-Topology-Design schafft überragende Übertaktungsmöglichkeiten unter Volllast und minimiert dabei Störungen und Signalreflektionen. Die Speicherkanäle verlaufen in gleichem Abstand zur CPU und bieten so eine besonders ausgewogene Steuerung über mehrere Speichermodule und eine insgesamt verbesserte Speicherkompatibilität.<br \><br \><b>Schnellere Festspeicher mit</b><br \><b>SATA Express</b><br \>SATA Express erreicht eine Datenübertragungsrate von bis zu 10 Gbit/s mit zwei PCIE-2.0-Lanes und ist damit bereit für die Anforderungen der Zukunft. Aktuelle SSDs erreichen bis zu 550 MB/s und nähern sich damit der Obergrenze von SATA mit 6 Gbit/s. Als Verbindungsstandard der nächsten Generation macht SATA Express Ihr System bereit für die Zukunft und ist dabei rückwärtskompatibel zu bis zu zwei SATA-Laufwerken.<br \><br \><b>Ein schnelleres System mit M.2</b><br \>Mit der doppelten nativen Bandbreite von PCI Express 2.0 unterstützt M.2 Datenübertragungsraten von bis zu 10 Gbit/s. Dies empfiehlt sich insbesondere für das Laufwerk des Betriebssystems und beschleunigt so den gesamten PC. Die Unterstützung für Intel® Rapid Storage Technology gewährleistet einen noch schnelleren Datenzugriff, schneller reagierende Anwendungen und eine Reaktivierung aus dem Ruhezustand in wenigen Sekunden.*<br \>* Weitere Hinweise zur Unterstützung von Intel® Rapid Storage Technology finden Sie in den technischen Daten der einzelnen Modelle"<br \><br \><b>Die Geschwindigkeit von Thunderbolt™2 schon heute</b><br \>Die Karten der ThunderboltEX-II-Serien von ASUS sind die ersten von Intel® zertifizierten Thunderbolt™-2-Erweiterungskarten. Damit können Sie Ihr System jederzeit auf Thunderbolt 2 aufrüsten. Sie profitieren von bidirektionalen Übertragungsraten von bis zu 20 Gbit/s – das ist das Vierfache von USB 3.0! Erleben Sie Filme mit unglaublichen Details auf aktuellen 4K/UHD-Monitoren, und nutzen Sie gleichzeitig Festspeichergeräte mit hohem Bandbreitenbedarf.<br \><br \><b>Schneller reagieren, besser punkten</b><br \><b>Turbo App</b><br \>Das Geräusch feindlicher Schritte in der Ferne. Eine Drehung und eine gezielte Salve – Sie waren wieder einmal schneller. Als Gamer wissen Sie, dass man nur mit schnellen Reaktionen gewinnt. Deshalb benötigen Sie ASUS Turbo App – ein intuitives Tuning-Panel, das Ihnen bei Ihren Lieblingsspielen einen entscheidenden Vorteil verschaffen kann. Übertakten Sie die CPU, priorisieren Sie die Datenübertragung von Spielen, und optimieren Sie die Audioeinstellungen für klaren Klang und verständliche Unterhaltungen im Spiel. Nur der Schnellste gewinnt. Rüsten Sie sich deshalb mit Turbo App.<br \><br \><b>Makelloser Sound</b><br \><b>versetzt Sie mitten ins Spiel</b><br \><b>Crystal Sound 2</b><br \>Crystal Sound 2 optimiert nach Ihren Vorstellungen im Handumdrehen die Audioeinstellungen für Spiele, Gespräche, Filme und Ihre Lieblingsmusik. Die Abschirmung, der professionelle Leitungsaufbau und die hochwertigen Komponenten, darunter japanische Audio-Kondensatoren und Operationsverstärker (OpAmps), sorgen für außergewöhnliche Klarheit und Klangtreue. Entdecken Sie Klangqualität in einer neuen Dimension und den entscheidenden Vorteil im Spiel.<br \><br \><b>Doppelter Vorteil für Gamer</b><br \>Zwischen Sieg und Niederlage liegen manchmal nur Millisekunden. Deshalb sind Mainboards von ASUS mit hochmoderner Netzwerktechnologie ausgestattet, die Ihnen den entscheidenden Vorteil verschafft.<br \><br \><b>Turbo LAN</b><br \>Turbo LAN mit der Traffic-Shaping-Technologie cFosSpeed minimiert Verzögerungen und überzeugt mit einer intuitiven Oberfläche. Reduzieren Sie Verzögerungen ohne Netzwerkkenntnisse um einen Faktor von bis zu 1,45. Und für Experten bietet der erweiterte Modus umfassende Einstellmöglichkeiten.<br \><br \><b>Ihr PC, Ihre Welt</b><br \>Die ASUS HomeCloud überwindet Grenzen. Sie können aus der Ferne auf Ihren PC zugreifen, Multimedia-Dateien streamen und alle Ihre Daten verwalten – von jedem Ort aus, unabhängig vom Speicherort. Nutzen Sie die integrierte Wake-on-WAN-Funktion, um Ihren PC mit einem Mobilgerät zu aktivieren und zu steuern – und zwar jederzeit und überall. Sie können sogar Ihre Festplatte in eine private Cloud verwandeln und sich damit von den Speicherbeschränkungen der Cloud-Dienste unabhängig machen. Mit der HomeCloud wird Ihr PC das Tor zur Ihrer Welt.<br \><br \><b>Jederzeit und überall volle</b><br \><b>Kontrolle mit Remote GO!</b><br \>Mit Remote GO! haben Sie die volle Kontrolle über Ihren PC, auch wenn Sie unterwegs sind. Greifen Sie auf Dateien zu, die Sie zu Hause vergessen haben, oder arbeiten Sie am PC, während Sie unterwegs oder in der Natur sind. Außerdem können Sie öffentliche Cloud-Dienste verwalten oder Dateien zwischen Ihrem PC und anderen Geräten mit einem Klick synchronisieren.<br \><br \><b>Die Medienzentrale für Datenaustausch und Unterhaltung</b><br \><b>Media Streamer</b><br \>Greifen Sie überall auf die Multimedia-Inhalte auf Ihrem PC zu. Hören Sie auf dem PC gespeicherte Musik, während Sie im Café sitzen, oder zeigen Sie Ihren Freunden Ihren Lieblingsfilm auf einem Smart-TV. Mit ASUS Media Streamer sind Sie überall gut unterhalten.<br \><br \><b>Kabellos in die Zukunft</b><br \><b>NFC EXPRESS 2 &</b><br \><b>Wireless Charger</b><br \>Steuern Sie Ihren PC, und laden Sie Mobilgeräte auf – bequem und kabellos mit NFC Express 2 und Wireless Charger! Steuern Sie den PC durch Antippen, oder legen Sie Ihr Mobilgerät ab, um es wie von Zauberhand aufzuladen. Kabel sind einfach hoffnungslos überholt.<br \><br \><b>Bewährte Qualität. Dauerhaftes Vertrauen.</b><br \><b>Strenge Kompatibilitäts- und Prüfanforderungen</b><br \>Wir sind der größte Mainboard-Hersteller der Welt und bekannt dafür, unsere Produkte auf Benutzer auszurichten – auf Sie. Unsere Ingenieure orientieren sich an strengen Vorgaben, um die Qualität unserer Produkte während ihrer gesamten Lebensdauer zu gewährleisten, und verwenden für die Serienproduktion nur ausgewählte Bauteile. Unsere Mainboards haben ihre Kompatibilität mit mehr als 1.000 Komponenten und Geräten unter Beweis gestellt und mindestens 7.000 Prüfstunden absolviert. Sie können also sicher sein, dass ASUS-Mainboards für alle Umgebungen und Anwendungen geeignet sind. Wenn Sie die besten Komponenten für Ihren PC auswählen möchten, vertrauen Sie auf ein Mainboard von ASUS.<br \><br \><b>Der PC-Eigenbau war noch nie so einfach</b><br \>Wir wissen, wie Sie Ihren PC montieren und nutzen. Deshalb machen wir Ihnen das Leben leichter – von der Montage über Systemeinrichtung und Monitoring bis hin zu Firmware- und Hardware-Updates. Und deshalb suchen wir stets nach neuen und interessanten Lösungen, damit der PC-Eigenbau einfach und unkompliziert ist und Spaß macht.<br \><br \><b>Intel CPU und Chipsatz-Features</b><br \><b>Intel® LGA 1150, 4. Generation, bereit für die 4. und 5. Generation der Prozessoren Core™ i7/Core™ i5/Core™ i3/Pentium®/Celeron®</b><br \>Das Mainboard unterstützt die 4. und 5. Generation der Intel®-Prozessoren Core™ i7/i5/i3/Pentium®/Celeron® mit dem Sockel LGA 1150 und integrierten iGPU-, Speicher- und PCI-Express-Controllern. Unterstützt werden ferner im Prozessor integrierte Grafiklösungen, 2-Kanal-DDR3-Speicher und 16 PCI-Express-3.0/2.0-Lanes. Damit ist eine überragende Grafikleistung garantiert.<br \><br \><b>Intel® Z97 Express-Chipsatz</b><br \>Der Intel® Z97 Express-Chipsatz unterstützt die 4. Generation der Intel®-Prozessoren mit Sockel LGA1150 (Core™ i7/i5/i3/Pentium®/Celeron®). Durch serielle Punkt-zu-Punkt-Verbindungen erzielt der Chipsatz eine höhere Bandbreite und Stabilität und damit eine verbesserte Leistung. Der Z97 bietet bis zu 6 USB-3.0-Anschlüsse, 6 SATA-Anschlüsse mit 6 Gbit/s und Unterstützung für M.2 mit 10 Gbit/s für schnellen Datenabruf. Der Intel® Z97 Express-Chipsatz unterstützt ferner iGPU, sodass integrierte Grafikprozessoren von Intel genutzt werden können.<br \><br \><b>Intel® Smart Response-Technologie</b><br \><b>SSD-Geschwindigkeit mit HDD-Kapazität</b><br \>Ein SSD-Laufwerk (mit mindestens 18,6 GB an freiem Speicherplatz) dient hierbei als Pufferspeicher für Daten, auf die häufig zugegriffen wird. Die wesentlichen Vorteile liegen in verkürzten Ladezeiten und einem geringeren Stromverbrauch, da die (mechanische) Festplatte weniger stark beansprucht wird. Diese Technologie verbindet die Geschwindigkeit von SSD-Laufwerken mit der Kapazität herkömmlicher Festplatten und steigert so die Leistung um das bis zu 6-Fache.<br \><br \><b>Intel® Smart Connect-Technologie</b><br \><b>Automatischer Datenabruf im Ruhezustand für verkürzte Wartezeiten</b><br \>Damit kann Ihr Computer für bestimmte Anwendungen Daten aus dem Internet abrufen, auch wenn das System im Ruhezustand ist. Das bedeutet eine geringere Wartezeit zum Beispiel bei der Synchronisierung mit der Cloud und eine effizientere Nutzung des PC.<br \><br \><b>Intel® Rapid Start-Technologie Sofortige Aktivierung des PC aus dem Ruhezustand</b><br \>Damit kann Ihr Computer in wenigen Sekunden aus dem Ruhezustand aktiviert werden. Indem der Systemspeicher auf einem SSD-Laufwerk gespeichert wird, ist der PC schneller wieder betriebsbereit und spart dennoch Strom.<br \><br \><table><tr><td>ACPI-Version:</td><td>5.0</td></tr>
<tr><td>Anzahl DVI-D Anschlüsse:</td><td>1</td></tr>
<tr><td>Anzahl Ethernet LAN (RJ-45) Anschlüsse:</td><td>1</td></tr>
<tr><td>Anzahl HDMI Anschlüsse:</td><td>1</td></tr>
<tr><td>Anzahl PS/2 Anschlüsse:</td><td>1</td></tr>
<tr><td>Anzahl USB 2.0 Anschlüsse:</td><td>2</td></tr>
<tr><td>Anzahl USB 2.0 Schnittstellen:</td><td>2</td></tr>
<tr><td>Anzahl USB 3.0 Anschlüsse:</td><td>4</td></tr>
<tr><td>Anzahl VGA (D-Sub) Anschlüsse:</td><td>1</td></tr>
<tr><td>Arbeitsspeicher Typ:</td><td>DIMM</td></tr>
<tr><td>ATX Stromstecker (24-pol.):</td><td>Ja</td></tr>
<tr><td>Audio Chip:</td><td>HDA</td></tr>
<tr><td>Audio Kanäle:</td><td>7.1</td></tr>
<tr><td>BIOS-Speichergröße:</td><td>64 MB</td></tr>
<tr><td>BIOS-Typ:</td><td>UEFI AMI</td></tr>
<tr><td>Breite:</td><td>30,5 cm</td></tr>
<tr><td>Clear CMOS-Jumper:</td><td>Ja</td></tr>
<tr><td>CPU Ventilatorstecker:</td><td>Ja</td></tr>
<tr><td>Eingebauter Ethernet-Anschluss:</td><td>Ja</td></tr>
<tr><td>EPS Stromstecker (8-pin):</td><td>Ja</td></tr>
<tr><td>Ethernet Schnittstellen Typ:</td><td>Gigabit</td></tr>
<tr><td>EZ Stecker:</td><td>Ja</td></tr>
<tr><td>Front Panel Audiostecker:</td><td>Ja</td></tr>
<tr><td>HDD Schnittstellen:</td><td>Serial ATA III</td></tr>
<tr><td>Kompatible Prozessoren:</td><td>Celeron, Core i3, Core i5, Core i7, Pentium</td></tr>
<tr><td>Komponente für:</td><td>PC</td></tr>
<tr><td>Kopfhörerausgänge:</td><td>1</td></tr>
<tr><td>LAN-Controller:</td><td>Intel I218V</td></tr>
<tr><td>Mikrofon, Line-In Anschluss:</td><td>Ja</td></tr>
<tr><td>Motherboard Chipsatz:</td><td>Intel Z97</td></tr>
<tr><td>Motherboard Chipsatz Familie:</td><td>Intel</td></tr>
<tr><td>Motherboardformfaktor:</td><td>ATX</td></tr>
<tr><td>Ohne ECC:</td><td>Ja</td></tr>
<tr><td>Parallele Verarbeitungstechnologie:</td><td>Quad-GPU CrossFireX, Quad-GPU SLI</td></tr>
<tr><td>PCI-Express x1 (Gen 2.x)-Anschlüsse:</td><td>4</td></tr>
<tr><td>PCI-Express x16 (Gen 2.x)-Anschlüsse:</td><td>1</td></tr>
<tr><td>PCI-Express x16 (Gen 3.x)-Anschlüsse:</td><td>2</td></tr>
<tr><td>Prozessorfamilie:</td><td>Intel</td></tr>
<tr><td>Prozessorsockel:</td><td>Socket H3 (LGA 1150)</td></tr>
<tr><td>RAID Level:</td><td>0, 1, 5, 10</td></tr>
<tr><td>RAM-Speicher:</td><td>32 GB</td></tr>
<tr><td>S/PDIF aus Stecker:</td><td>Ja</td></tr>
<tr><td>S/PDIF-out Anschluss:</td><td>Ja</td></tr>
<tr><td>SATA Anschlüsse:</td><td>6</td></tr>
<tr><td>SATA III Anschlüsse:</td><td>6</td></tr>
<tr><td>Speicherkanäle:</td><td>doppelt/Dual</td></tr>
<tr><td>Speichersteckplätze:</td><td>4</td></tr>
<tr><td>Tiefe:</td><td>24,4 cm</td></tr>
<tr><td>TPM-Verbinder:</td><td>Ja</td></tr>
<tr><td>Unbuffered Speicher:</td><td>Ja</td></tr>
<tr><td>Unterstützte Arbeitsspeicher:</td><td>DDR3-SDRAM</td></tr>
<tr><td>Unterstützte Arbeitsspeichergeschwindigkeit:</td><td>1333, 1600, 1866, 2000, 2133, 2200, 2400, 2600, 2666, 2800, 2933, 3000 MHz</td></tr>
<tr><td>USB 3.0-Anschlüsse:</td><td>2</td></tr>
<tr><td>Zahl der Chassisventilatorstecker:</td><td>4</td></tr>
<tr><td>Zahl der EATX Energie Stecker:</td><td>1</td></tr>
</table>
I would like to to split this description and implement the artikel atributes, into an sql table. In the Description the atributes are inside the table.
So that I later can implement a filter on my webpage
I am trying with the following script
Create TABLE #test(
[cArtNr] varchar(10),
attribute varchar(100),
Value varchar(100)
)
DECLARE #S varchar(max),
#Split char(1),
#Split2 char(1),
#Split3 char(1),
#y varchar(max),
#X xml,
#Z int = 1,
#1 varchar(10),
#2 varchar(10),
#3 varchar(10),
#4 float;
/* ### Select Description string and cut everything outside from table tags ### */
SELECT #S = (SELECT
[cBeschreibung]
FROM [dbname].[dbo].[tartikel]
where cArtNr = 'TF90062750')
Select #S
Select #S = RIGHT(#S,LEN(#S)-CHARINDEX('<table>',#S)-6)
Select #S = LEFT(#S,CHARINDEX('</table>',#S)-1)
SELECT #S
/* ### Split Variables ### */
Select #Split = '</td></tr>',
#Split2 = '</td><td>',
#Split3 = '<tr><td>'
--Select #S = Replace(#S,#Split2,'</s><s>')
Select #y = Replace(#S,#Split3,'')
SELECT #x = CONVERT(xml,'<root><s>' + REPLACE(#y,#Split,'</s><s>') + '</s></root>')
Select #x
DECLARE calc3 SCROLL Cursor FOR
SELECT [Value] = T.c.value('.','varchar(20)')
FROM #X.nodes('/root/s') T(c)
SET #3 = 'TF90062750';
OPEN calc3;
FETCH NEXT FROM calc3;
WHILE ##FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM calc3;
FETCH PRIOR FROM calc3
INTO #1
FETCH NEXT FROM calc3
INTO #2
Insert into #test ([cArtNr],attribute,Value)
Values (#3, #1, #2);
FETCH NEXT FROM calc3;
END
DEALLOCATE calc3;
Select * from #test
I am somehow stuck, I would appreciate a little help
Please let me know if you would choose another approach and how it is done.
My result is like and this seems false
TF90062750 /s>s>tr>/s NULL
TF90062750 tr>td>ACPI NULL
TF90062750 tr>td>ACPI NULL
i´va a little Question. I need the Data of One Node including its Subnodes. The Node has an Attribute named id.
How i can select the Node that i need when i´m using an xsl:template?
Here is an example of the XML, that i use:
<Seminar id="1" xmlns="">
<Name>Eintägiges Meditations-Seminar </Name>
<Seminartext><div class="ExternalClassEC5CACB3C1AD43F8AA5D2228F51FEE6E"><p>Die Meditation ist…<br>… mehr als nur eine Form des Innehaltens, sie ist mehr als<br>eine innere Einkehr, mehr als eine Technik, mit der man zur<br>Ruhe kommt. Wir stehen nicht mehr im Mittelpunkt, sondern<br>wenden uns von uns selber – von unseren Sorgen, Ängsten<br>und Nöten, aber auch von unseren Ambitionen, ja selbst von<br>unseren guten Intentionen - ab und stellen uns bewusst der<br>Wirklichkeit, die viel größer ist als wir und selbst als unsere<br>kühnsten Gedanken. Es ist, als wenn wir bei der Betrachtung<br>unseres Lebensbildes ein Stück von der Tafel zurücktreten,<br>um das gesamte Bild besser in den Blick zu bekommen. Somit<br>ist die Meditation auch der Versuch, uns selbst „in Perspektive<br>zu stellen“. Religiös gesprochen öffnen wir uns in<br>der Meditation der alles umfassenden Wahrheit Gottes. Das<br>ist befreiend und hilft gerade auch oft Menschen, die zwar<br>ehrlich suchen, aber in ihrem Gebetsleben eine gewisse Dürre<br>und Trockenheit durchleben. Die Praxis der Meditation wird<br>dann von vielen als wohltuend empfunden. Sie kann den Menschen<br>gerade in der heutigen Zeit helfen, zu innerer Ruhe<br>und Ausgeglichenheit zu finden. Am Ende besteht auch die<br>Chance, dass wir die Gabe der Unterscheidung schärfen und<br>sogar zu besseren Entscheidungen kommen. Menschen, die<br>meditieren, berichten häufig, dass sie gelassener und ausgeglichener<br>werden. Am Ende ist dies auch eine Frage gesunder<br>Lebensführung. <strong>Deshalb können vor allem auch Entscheidungsträger</strong><br><strong>in verantwortlichen Positionen in der Meditation</strong><br><strong>Kraft und Orientierung finden. Sie ist ein Angebot für alle, die</strong><br><strong>ihr Gebetsleben auffrischen wollen und darin auch Antworten</strong><br><strong>auf die ganz praktischen Probleme des Alltags suchen.</strong><br><br>Die Vorträge während des Seminars hält Frau <strong>Kim Nataraja</strong><br>von der <strong>Weltgemeinschaft für Christliche Meditation</strong><br>(www.wccm.org). Sie war früher Hochschuldozentin für moderne<br>Sprachen, heute ist sie Direktorin der internationalen<br>Schule der Weltgemeinschaft für Christliche Meditation in<br>London. Sie ist Autorin des Buches „Dancing with your Shadow“,<br>Herausgeberin und Co-Autorin des Buches „Journey<br>to the Heart – Christian Contemplation through the centuries<br>– an illustrated guide“ sowie Mitgestalterin am interreligiösen<br>Dialog im Rahmen der Initiative „Way of Peace“ mit<br>dem Dalai Lama.<br><br>Die Vorträge werden in <strong>deutscher Sprache</strong> gehalten. Das Seminar<br>wird organisatorisch vom Vorsitzenden der Academie<br>Kloster Eberbach, Marcus Lübbering, betreut. Es wird in<br>Kooperation mit dem RKW Hessen Rationalisierungs- und<br>Innovationszentrum der Wirtschaft e. V. durchgeführt.<br></p></div></Seminartext>
<Programm><div class="ExternalClassB1AC2A7AB508444BB4D38D4F40D2B8D8"><table width="100%" cellspacing="0" class="ms-rteTable-default"><tbody><tr class="ms-rteTableEvenRow-default"><td class="ms-rteTableEvenCol-default" style="width:50%;">9.30 Uhr</td><td class="ms-rteTableOddCol-default" style="width:50%;">Begrüßung und Einführung<br>Marcus Lübbering</td></tr><tr class="ms-rteTableOddRow-default"><td class="ms-rteTableEvenCol-default"></td><td class="ms-rteTableOddCol-default">Grußwort<br>Sascha Gutzeit, RKW Hessen</td></tr><tr class="ms-rteTableEvenRow-default"><td class="ms-rteTableEvenCol-default">10.00 Uhr</td><td class="ms-rteTableOddCol-default">Vortrag:<br>„ Meditation – eine Antwort auf unsere<br>Probleme in der heutigen Welt?“</td></tr><tr class="ms-rteTableOddRow-default"><td class="ms-rteTableEvenCol-default">11.00 Uhr</td><td class="ms-rteTableOddCol-default">Kaffeepause</td></tr><tr class="ms-rteTableEvenRow-default"><td class="ms-rteTableEvenCol-default">11.30 Uhr</td><td class="ms-rteTableOddCol-default">Vortrag:<br>„Meditation als neue alte Lösung“</td></tr><tr class="ms-rteTableOddRow-default"><td class="ms-rteTableEvenCol-default">12.30 Uhr</td><td class="ms-rteTableOddCol-default">Meditationszeit</td></tr><tr class="ms-rteTableEvenRow-default"><td class="ms-rteTableEvenCol-default">13.00 Uhr</td><td class="ms-rteTableOddCol-default">Imbiss</td></tr><tr class="ms-rteTableOddRow-default"><td class="ms-rteTableEvenCol-default">14.15 Uhr</td><td class="ms-rteTableOddCol-default">Themen (Erarbeitung in Kleingruppen)<br>und Antworten (im Plenum)</td></tr><tr class="ms-rteTableEvenRow-default"><td class="ms-rteTableEvenCol-default">16.00 Uhr</td><td class="ms-rteTableOddCol-default">Abschlusskaffee mit Austausch</td></tr><tr class="ms-rteTableOddRow-default"><td class="ms-rteTableEvenCol-default">16.30 Uhr</td><td class="ms-rteTableOddCol-default">Meditationszeit</td></tr><tr class="ms-rteTableFooterRow-default"><td rowspan="1" class="ms-rteTableFooterEvenCol-default">17.00 Uhr</td><td rowspan="1" class="ms-rteTableFooterOddCol-default">Ende des Seminars und<br>Möglichkeit zu persönlichen Fragen</td></tr></tbody></table><p></p></div></Programm>
<Datum>30.10.2013 23:00:00</Datum>
<Kosten><div class="ExternalClass47BDE88ABE304276B9CF19DBB86C56F9"><p> je nach Selbsteinschätzung zwischen 50,- und 150,- Euro. </p></div></Kosten>
<Seminarleiter>Kim Nataraja, London Weltgemeinschaft für Christliche Meditation</Seminarleiter>
<Anmeldeschluss>22.10.2013 22:00:00</Anmeldeschluss>
<PDF>http://192.168.10.30:12000/media/73c6ab3f-3b2c-4de4-8bf8-aae8014f8bb1/-1079363063/PDF-Dateien/Einladungsflyer%20Meditations-Seminar%202013.pdf</PDF>
</Seminar>
<Seminar id="2" xmlns="">
<Name>Test</Name>
<Seminartext><div class="ExternalClass687E629C238349BB81D317CC51A47E6A">TEst<p></p></div></Seminartext>
<Programm><div class="ExternalClassBE4ABC2BC486407FAC83EB6F15F952CB">TEst<p></p></div></Programm>
<Datum>16.07.2014 22:00:00</Datum>
<Kosten><div class="ExternalClass760FA47ECB3245A1952D85DAF58688D7"><p>fhfghfg</p></div></Kosten>
<Seminarleiter>hfghfghfghfgh</Seminarleiter>
<Anmeldeschluss>24.06.2014 22:00:00</Anmeldeschluss>
<PDF>fsdfsdfsdf</PDF>
</Seminar>
Can anywone help me?
Thanks a lot
Jörn-Dennis Heldt
The question is actually more about XPath than XSL.
In order to process a node selecting it by it's attribute value you need to use the format: /path/to/the/node[attribute='value to match']
In your case, it would look something like:
<xsd:template match="Seminar[id='1']">
<!-- some processing -->
</xsd:template>