从Android设备发送Json数组到移动Azure服务后端javascript不工作



如何从Android设备发送Json数组到移动azure服务中的后端javascript。

下面是windows store应用程序的c#代码,可以正常工作。

问题登录投票0登录投票

如何从Android设备发送Json数组到移动azure服务的后端javascript。

下面是windows store应用程序的c#代码,可以正常工作。

JArray jsonArray = new JArray();
            jsonArray.Add(JToken.FromObject(new Contact() { Name = "Clarke", ContactNo = "123456" }));
            jsonArray.Add(JToken.FromObject(new Contact() { Name = "Jordan", ContactNo = "4513264" }));
JToken x = await App.MobileService.InvokeApiAsync("userservice/UploadContacts", jsonArray);

当我通过Fiddler测试它的工作正常。但是当我从android设备发送时,我在服务器中获得的数据为

{values: [{nameValuePairs: [Object]}, {nameValuePairs: [Object]}]}

匹配的记录数,但我收到的不是实际数据,而是nameValuePairs: object.

下面是android代码。

    JSONObject job = new JSONObject();
    Contact c1 = new Contact();
    c1.ContactNO = "9067655676";
    c1.Name = "abcd";
    job.add(c1);
    Contact c2 = new Contact();
    c2.ContactNO = "999999999";
    c2.Name = "efgh";
    job.add(c2);
    JSONArray book = new JSONArray(job);
    MobileServiceClient mClient = new MobileServiceClient(
         "https://MyAppService.azure-mobile.net/",
          "myKeyValue", context);
    mClient.invokeApi("userservice/UploadContacts", book, Contact.class , new ApiOperationCallback() 
    {
             //onCompleted callback code..............
    });

Contact类有2个属性ContactNO, Name

谁来帮我解决这个问题........

很确定你的代码不会像那样编译。无论如何,您可能希望这样做:

JsonArray jArray = new JsonArray();
Contact c1 = new Contact();
c1.ContactNO = "123455";
c1.Name = "Test";
Gson gson = new Gson();
jArray.add(gson.toJsonTree(c1));
Contact c2 = new Contact();
c2.ContactNO = "23455";
c2.Name = "test2";
jArray.add(gson.toJsonTree(c2));
mClient.invokeApi("uploadContacts", jArray, new ApiJsonOperationCallback() {
        @Override
        public void onCompleted(JsonElement jsonElement, Exception e, ServiceFilterResponse serviceFilterResponse) {

注意你添加的元素是JsonArray而不是JSONObject。要确保使用的是com.google.json库

最新更新