将对象列表传递给Web服务

时间:2017-10-12 11:57:09

标签: c# .net arrays web-services object

我有一个对象数组

private void sendRegistrationToServer(String token) {
if(getSharedPreferences(Params.IDToken, MODE_PRIVATE).get("logedIn",false)){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(Params.USERS).child(user.getUid()).child("token")
        .setValue(token);
   }
  }

通过let arr = [{"1":"bar"},{"2":"bar"}]

中的ajax发送到服务 然后,该服务将获得阵列&做的事。

data

我的模型需要什么样才能收到数据[WebInvoke] public void getStuff(params Model[] data) { // do stuff }

更新

更改了对象中的键

2 个答案:

答案 0 :(得分:0)

你可以做这样的事情来获得参数:

var key = Request.Params[0];

然后你可以使用var" key"填写模型

答案 1 :(得分:-1)

这个.js数组中的元素:

let arr = [{"foo":"bar"},{"foo":"bar"}]

可以表示为此.cs类

class Model 
{
    public string foo;
}

因为对于每个对象({}中的位),默认是将lhs映射到具有相同名称(foo)的类的属性。

但是,在你编辑之后,如果你想要这个:

let arr = [{"1":"bar"},{"2":"bar"}]

然后,这不能轻易地映射到一个类,而不是因为你不能有一个名为'1'的字段,而且因为它意味着json的lhs有许多不同的选项。

在这种情况下,请考虑使用词典