0

単純な文字列よりもはるかに長いオブジェクトの配列である前に、解析するJson文字列を取得しました。これにより、フォーマットに何か問題があると思います。

Webサービスがjson文字列として出力しているものは、次のとおりです。

{"news":"What is Legal/Awesome Dre"}

最初の部分は単にアプリケーションで文字列に名前を付けたもの (ニュース) で、2 番目の部分は曲の変化に合わせて変化する文字列です。

アプリを実行すると、次の行で解析エラーが発生します。

Console.Out.Writeline (content);

news = JsonConvert.DeserializeObject(content);

アプリケーションの出力には、Json 文字列が Web サイトに表示されているとおりに表示されますが、その直後にエラーが表示され、Invalid Token: startPath... というエラーが表示されます。データ。誰でもこれで私を助けることができますか?

(PS 私は C# を使用して Xamarin Studio (Android 用モノラル) で作業していますが、それが違いを生む場合)

4

2 に答える 2

1

"news"問題は、シリアル化された JSON オブジェクトが文字列ではなく、プロパティ/キー/名前で必要な文字列値を持つオブジェクトであることです。これは、文字列を取得する簡単な方法です。

dynamic jsonObj = JsonConvert.DeserializeObject(content);
string news = jsonObj.news;

または、匿名型を使用できます。

var jsonObj = JsonConvert.DeserializeAnonymousType(content, new { news = "" });
string news = jsonObj.news;

または、string Newsプロパティを持つタイプを作成します。

MyNewsType jsonObj = JsonConvert.DeserializeObject<MyNewsType>(content);
string news = jsonObj.News;

これらはすべて次のように機能します。

var content = @"{""news"":""What is Legal/Awesome Dre""}";
// above code
Console.WriteLine(news); // prints "What is Legal/Awesome Dre"
于 2013-10-23T20:29:53.433 に答える
1

JSON に角かっこを入れてみてください。

[{"news":"What is Legal/Awesome Dre"}]
于 2013-10-23T20:27:42.910 に答える