代码之家  ›  专栏  ›  技术社区  ›  Tawani

将JSON数组传递给wcfweb服务

  •  3
  • Tawani  · 技术社区  · 15 年前

    我正在尝试将JSON数组传递给WCF服务。但似乎不起作用。实际上,我从服务中提取了一个数组[GetStudents],并将完全相同的数组发送回服务[SaveStudents],但没有收到任何内容(空数组)。 JSON数组的格式如下:

    [
      {"Name":"John","Age":12},
      {"Name":"Jane","Age":11},
      {"Name":"Bill","Age":12}
    ]
    

    //Contracts
    [DataContract]
    public class Student{
      [DataMember]public string Name { get; set; }
      [DataMember]public int Age{ get; set; }
    }
    
    [CollectionDataContract(Namespace = "")]
    public class Students : List<Student>
    {
      [DataMember]public Endorsements() { }
      [DataMember]public Endorsements(IEnumerable<Student> source) : base(source) { }
    }
    
    //Operations
    public Students GetStudents()
    {
      var result = new Students();
      result.Add(new Student(){Name="John",12});
      result.Add(new Student(){Name="Jane",11});
      result.Add(new Student(){Name="Bill",12});
      return result;
    }
    
    //Operations
    public void SaveStudents(Students list)
    {
      Console.WriteLine(list.Count); //It always returns zero
    }
    

    有没有一种特殊的方法可以将数组发送到WCF REST服务?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ash    15 年前

    我也有类似的问题。 我是从浏览器调用服务的,问题是Firefox动态地将请求内容类型从'application/json'更改为'application json';字符集=utf-8'。 如果您是从浏览器调用服务,请使用非firefox浏览器进行测试,如果是这种情况,则需要从请求内容类型标头中删除字符集