Windows 8 在Windows 8中解析JSON响应时出错

Windows 8 在Windows 8中解析JSON响应时出错,windows-8,microsoft-metro,windows-runtime,winrt-xaml,winrt-async,Windows 8,Microsoft Metro,Windows Runtime,Winrt Xaml,Winrt Async,以下代码在语句处抛出错误: Result res = (Result)stdserialize.ReadObject(ms); 错误是:反序列化TrackLocation.MainPage+Result类型的对象时出错。应为命名空间“”中的结束元素“类型”。从命名空间“”中找到元素“项” //################################################################################################ 任何关于如

以下代码在语句处抛出错误:

Result res = (Result)stdserialize.ReadObject(ms);
错误是:反序列化TrackLocation.MainPage+Result类型的对象时出错。应为命名空间“”中的结束元素“类型”。从命名空间“”中找到元素“项”

//################################################################################################


任何关于如何解决此问题的想法。任何帮助都将不胜感激。

仔细查看JSON,您的
地址组件的
类型
字段应为
字符串[]
而不是
字符串

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "285",
               "short_name" : "285",
               "types" : [ "street_number" ]
            },

另外,您似乎有两个
Address
类和一个
result
(小写)和
result
(大写)类;我假设这些是剪切和粘贴问题,因为它们似乎与返回的JSON不匹配。

我刚刚将JSON转换为XMl,并发现要重复的类型(检查下面的屏幕截图),但在您的datacontract中 [DataMember(Name=“types”)] 公共字符串类型

把这个当作

        [DataMember(Name = "types")]
        public string[] Types;
它应该会起作用

删除了附加的结果类。它不在我的代码中。AddressComponent已经是Address类中的一个数组。我将AddressComponent成员(如long\u name、short\u name)和类型设置为string[],而不是string。现在它给出了错误:应为状态“Element”。。遇到名称为“”、命名空间为“”的“文本”。只有AddressComponent的Types字段(对应于JSON中属性化的类型)需要为string[],其他字段都可以
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "285",
               "short_name" : "285",
               "types" : [ "street_number" ]
            },
        [DataMember(Name = "types")]
        public string[] Types;