0
我有一個將JSON對象發佈到WCF服務的Android應用程序。所發佈的JSON對象包含一個數組屬性。我的問題是,在服務器上收到時,arrray屬性始終爲空。將JSON對象發佈到WCF服務 - 列表屬性始終爲空
這是發佈了Android代碼:
ObjectMapper mapper = new ObjectMapper();
ArrayList<RespuestaEncuesta> respuestas = new ArrayList<RespuestaEncuesta>(1);
RespuestaEncuesta r = new RespuestaEncuesta();
r.Comentarios = "ASD";
r.GrupoClienteID = UUID.fromString("00000000-0000-0000-0000-000000000000");
r.GrupoID = 1155;
r.Opcion = "2";
respuestas.add(r);
RespuestaWrapper data = new RespuestaWrapper();
data.Respuestas = respuestas;
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
String respuestarJson = mapper.writeValueAsString(data);
String url = config[0] + "/GuardaEncuestas";
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
StringEntity tmp = new StringEntity(respuestarJson);
httpPost.setEntity(tmp);
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.execute(httpPost);
產生以下JSON:
{
"RespuestaWrapper" : {
"Respuestas" : [ {
"Comentarios" : "ASD",
"GrupoClienteID" : "00000000-0000-0000-0000-000000000000",
"Opcion" : "2",
"Numero" : 0,
"GrupoID" : 1155.0
} ]
}
}
在服務器端,我的服務定義如下:
[OperationContract]
[WebInvoke(
Method = "POST",
UriTemplate = "GuardaEncuestas",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
void GuardaEncuestas(RespuestaWrapper respuestas);
[Serializable, DataContract]
public class RespuestaWrapper
{
[DataMember]
public List<RespuestasWrapped> Respuestas;
}
[Serializable, DataContract]
public class RespuestasWrapped
{
[DataMember(IsRequired = false)]
public double GrupoID { get; set; }
[DataMember(IsRequired = false)]
public Guid GrupoClienteID { get; set; }
[DataMember(IsRequired = false)]
public int Numero { get; set; }
[DataMember(IsRequired = false)]
public string Opcion { get; set; }
[DataMember(IsRequired = false)]
public string Comentarios { get; set; }
}
每次我打電話給服務時,我都會收到RespuestasWrapped對象,但Respuestas propery是空的。