私の学校プロジェクトに取り組んでいて、アンドロイドプログラミングでは新しいですが、私はC#と.netでいくつかのプログラミング経験を持っています。JSONをJavaクラスに変換する(AndroidアプリケーションからWebApiを呼び出す)
これは私のコードです:
public class ProizvodiAPI {
public class ProizvodiVM implements Serializable
{
public Integer proizvodID;
public String naziv;
public String sifra;
public BigDecimal cijena;
public String jedinicaMjere;
public String vrstaProizvoda;
}
public class ProizvodiLista implements Serializable
{
public List<ProizvodiVM> proizvodi;
}
public static void GetAllProizvode(final MyRunnable<ProizvodiLista> onSuccess)
{
RequestQueue queue = Volley.newRequestQueue(MyApp.getContext());
String url = "Proizvodi/GetProizvodiVM";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.urlApi + url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
final Gson gson = MyGson.build();
final ProizvodiLista model = gson.fromJson(response, ProizvodiLista.class);
onSuccess.run(model);
}
}, new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(MyApp.getContext() , "That didn't work", Toast.LENGTH_LONG).show();
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
}
}
プログラムは、ここにクラッシュ:
final ProizvodiLista model = gson.fromJson(response, ProizvodiLista.class);
は、それがあるならば、私はJavaのクラスを変更し、内容を変更するにはshoud、デシリアライズをJSONでの問題ですか?ここで
は、Web APIの私のC#クラスである:
public class Proizvodi
{
public int ProizvodID { get; set; }
public string Naziv { get; set; }
public string Sifra { get; set; }
public decimal Cijena { get; set; }
public string JedinicaMjere { get; set; }
public string VrstaProizvoda { get; set; }
}
そして、これが応答である: json response
json文字列を共有できますか? – Natan
Jsonの文字列はこのリンクにあります:http://vpaste.net/VIuVC – TariqN
LogCatの出力を提供することは役に立ちます。 GSONでは大文字と小文字が区別されると思います。ですから、最初に 'ProizvodiVM'のパラメータを大文字にしてみてください。 – Phoca