Ich habe ein JSON-Objekt, das wie folgt aussieht:Unerwartetes Zeichen auf beim Wert analysiert, JSON-Objekt
"field2_body":null,"field3_body":null,"field4_body":null,"h_phrases":[{"h_phrase":"H222"},{"h_phrase":"H411"},{"h_phrase":"H361"},{"h_phrase":"H315"}]
Aber das ist nur ein Teil des JSON-Objekts, weil es sehr groß ist.
Was ich tun möchte, ist die h_phrase String-Werte zuzugreifen, aber wenn ich bekomme ich versuchen, diesen Fehler:
ERROR Unexpected character encountered while parsing value: {. Path '[0].h_phrases', line 64, position 7.
Und dies ist mein Code:
public class PhrasesData
{
[JsonProperty(PropertyName = "h_phrases")]
public string H_Phrases { get; set; }
}
public async void getPhrasesForSpecificProduct(string productId)
{
var baseUrl = "http://www.kemtest.com/rest/organisations";
var specProductUrl = baseUrl + "/" + activeOrganisationId + "/" + "products/" + productId;
try
{
var baseAddress = new Uri(specProductUrl);
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
validToken = System.Net.WebUtility.UrlEncode(validToken);
cookieContainer.Add(baseAddress, new Cookie("access_token", string.Format(validToken)));
var result = client.GetAsync(specProductUrl).Result;
result.EnsureSuccessStatusCode();
if (result.IsSuccessStatusCode)
{
var content = await result.Content.ReadAsStringAsync();
var array = JArray.Parse(content);
PhrasesData[] myPhrasesData = JsonConvert.DeserializeObject<PhrasesData[]>(array.ToString());
if (myPhrasesData == null)
throw new JsonException();
string[] H_PhrasesArr = new string[myPhrasesData.Length];
for (int i = 0; i < myPhrasesData.Length; i++)
{
H_PhrasesArr[i] = myPhrasesData[i].H_Phrases;
var H_PhrasesVar = H_PhrasesArr[i];
Debug.WriteLine("God Damn PHRASES: " + H_PhrasesVar);
}
}
}
}catch (Exception ex) { Debug.WriteLine(@" ERROR {0}", ex.Message); }
}
Was ist das Problem mit meinem Code?
Nun, ich könnte Ihnen nicht die Antwort geben, aber warum versuchen Sie es nicht die Zeichenfolge mit einem Online-Tool zuerst zu deserialisieren? – BraveHeart
Versuchen Sie Ihre Json-Zeichenfolge auf einem Online-Validator wie "http: // pro.jsonlint.com" und sehen Sie, ob es gültig ist. – SushiHangover
Hey, danke für die Antwort auf meine Post Jungs! Ich habe mein JSON-Objekt in http://pro.jsonlint.com eingefügt und es war gültig. Ich habe andere Methoden in meinem Code versucht, aber ich bin nicht gelungen ... Wenn Sie möchten, kann ich das ganze JSON-Objekt veröffentlichen? –