Hello I'm doing an applicative to android using Xamarin. I wrote a code to call an API from WSO2, the answer it returns depends on the ID the user send. It returns a JSON in the Content like this:
{"consumerId":56704292158, "categoryId":1, "categoryDescription": "Pessoa", "firstName":"FN","lastName":"Last Name","fiscalDocuments":[{"fiscalDocument":{"documentType":"Brasil: nº CPF","cpf":199999992}}],"gender":"M","emailAddress":"r****@*.com","optIns":[{"optIn":{"brandName":"consul","acceptanceStatus":false}},{"optIn":{"brandName":"brastemp","acceptanceStatus":true}}],"communicationData":[{"communicationInfo":{"addressId":2****03,"phoneNumbers":[{"phoneNumber":{"phoneType":"mobilePhone","phoneNumber":5555555555}}],"streetAddress":"ANY STREET","streetNumber":123,"streetComplement":null,"streetDistrict":"ANY TOWN","cityName":"ANY CITY","stateCode":"XX","zipCode":"12345","locationReferences":[{"locationReference":"Mercado"}],"countryCode":"ZZ"}},{"communicationInfo":{"addressId":2.563244E+7,"phoneNumbers":[{"phoneNumber":{"phoneType":"mobilePhone","phoneNumber":5555555555}},{"phoneNumber":{"phoneType":"homePhone","phoneNumber":555555555}}],"streetAddress":"ANY STREET","streetNumber":123,"streetComplement":"CASA","streetDistrict":"ANY TOWN","cityName":"ANY CITY","stateCode":"XX","zipCode":"12345","locationReferences":[{"locationReference":"Ao lado do deposito lua nova"}],"countryCode":"ZZ"}}]}
I just wanna get from this the fields firstName and lastName. I'm trying to serialize this but I think I'm doing something wrong. Here is the code
using System;
using Android.App;
using Android.Widget;
using Android.OS;
using RestSharp;
using Newtonsoft.Json;
using Android.Util;
using App4.Resources;
using Newtonsoft.Json.Linq;
namespace App4
{
[Activity(Label = "App4", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
EditText edtcpf;
Button btnConsumer;
TextView txtcpf;
RestRequest cpf { get; set; }
public RestClient consumer { get; set; }
IRestResponse mensagemConsumer;
TextView txtresposta;
RestClient orderId { get; set; }
RestRequest requestorderId { get; set; }
IRestResponse answer { get; set; }
IRestResponse answerorder { get; set; }
TextView txtnome;
public string raika;
private string teamname;
private JToken primeironome;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
btnConsumer = FindViewById<Button>(Resource.Id.btnConsumer);
edtcpf = FindViewById<EditText>(Resource.Id.edtcpf);
txtcpf = FindViewById<TextView>(Resource.Id.txtcpf);
txtresposta = FindViewById<TextView>(Resource.Id.txtresposta);
txtnome = FindViewById<TextView>(Resource.Id.txtNome);
btnConsumer.Click += BtnConsumer_Click;
}
private void BtnConsumer_Click(object sender, EventArgs e)
{
try
{
// API Consumer CPF
consumer = new RestClient("https://qa.api-latam.whirlpool.com/v1.0/consumers");
cpf = new RestRequest("/" + edtcpf.Text, Method.GET);
cpf.AddHeader("Content-Type", "application/json; charset=utf-8");
cpf.AddHeader("Authorization", "Bearer 70197e6c-d81b-384c-bb32-d69e8c10b101");
mensagemConsumer = consumer.Execute(cpf);
string nombre = Convert.ToString(mensagemConsumer.Content);
Nome nome = new Nome();
string json = JsonConvert.SerializeObject(mensagemConsumer.Content, Formatting.Indented);
nome.firstName = mensagemConsumer.Content;
Log.Info("info ",json);
txtresposta.Text = json;
//API Consumer Appliances
orderId = new RestClient("https://qa.api-latam.whirlpool.com/v1.0/consumers/");
requestorderId = new RestRequest("/"+ edtcpf.Text+ "/service-orders", Method.GET);
requestorderId.AddHeader("Content-Type", "application/json; charset=utf-8");
requestorderId.AddHeader("Authorization", "Bearer 70197e6c-d81b-384c-bb32-d69e8c10b101");
answerorder = orderId.Execute(requestorderId);
txtnome.Text = answerorder.Content;
string respostaorder = Convert.ToString(answerorder);
dynamic deserializado = JsonConvert.DeserializeObject(respostaorder);
}
catch (Exception)
{
throw;
}
}
}
}
And here is the class with get and set
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace App4.Resources
{
public class Nome
{
public string firstName { get; set;}
public string lastName { get; set; }
}
}
How can I serialize and Deserialize this with a JSON that uses a var that depends on .Text like edtcpf.Text and its Content?