#c# #android #azure #azure-mobile-services
#c# #Android #azure #azure-mobile-services
Вопрос:
Как отправить массив Json на серверный javascript в мобильных службах Azure с устройства Android.
Ниже приведена кодировка c # из приложения Windows Store, которая работает правильно.
Вопрос Войдите, чтобы проголосовать 0 Войдите, чтобы проголосовать
Как отправить массив Json на серверный javascript в мобильных службах Azure с устройства Android.
Ниже приведена кодировка c # из приложения Windows Store, которая работает правильно.
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, я получаю данные на сервере в виде
{ значения: [ {nameValuePairs: [Объект] }, {nameValuePairs: [объект] } ] }
количество записей совпадает, но вместо фактических данных я получаю 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..............
});
Класс контактов имеет 2 свойства ContactNO, Name
Кто-нибудь, пожалуйста, помогите мне решить эту проблему……..
Комментарии:
1. Можете ли вы опубликовать свой фактический код? Приведенный выше код имеет проблемы с синтаксисом (пропущенные точки с запятой и т.д.) и не компилируется.
2. Привет, Крис, я обновил код Android
Ответ №1:
Почти уверен, что ваш код никак не будет компилироваться подобным образом. Во всяком случае, вы, вероятно, захотите сделать что-то подобное:
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 для этого.
Комментарии:
1. Да, но вам нужно войти и принять ответ как решенный (он будет отмечен зеленой галочкой под подсчетом голосов в StackOverflow).