0

我已经得到了一个 Json 字符串来解析,这是一个比简单字符串长得多的对象数组,这让我认为我在格式化方面做错了。

以下是我们的 web 服务作为 json 字符串输出的内容:

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

第一部分只是我在应用程序中命名的字符串(新闻),第二部分是随着歌曲的变化而变化的字符串,这就是为什么我想引入一个简单的字符串。

当我运行应用程序时,我在这些行中遇到解析错误:

Console.Out.Writeline (content);

news = JsonConvert.DeserializeObject(content);

应用程序输出将显示网站上的 Json 字符串,但在告诉我 Invalid Token: startPath...数据。任何人都可以帮助我吗?

(PS 我正在使用 C# 在 Xamarin Studio(Android 单声道)中工作,如果这有什么不同的话)

4

2 回答 2

1

尝试在您的 JSON 中放置方括号:

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

问题是您的序列化 JSON 对象不是字符串,它是在"news"属性/键/名称中具有您想要的字符串值的对象。这是获取字符串的简单方法:

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 回答