Cześć ! Mam pytanie. Jak pobrać dane z mojego JSON-a do 2 list ( jedna pobiera tylko "Nazwy" a druga tylko "Ceny" )
Mój JSON:
[{
"Nazwa": "Rower",
"Cena": "300"
}, {
"Nazwa": "Rower mtb",
"Cena": "350"
}, {
"Nazwa": "Piłka",
"Cena": "50.7"
}]
Potrzebuje przekazać te listy do adaptera RecyclerView.
To wygenerowała mi strona http://www.jsonschema2pojo.org/
package bjd.adrian.recyclerviewandjson;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class FromSerachJSON {
@SerializedName("Nazwa")
@Expose
private String nazwa;
@SerializedName("Cena")
@Expose
private String cena;
// gettery i settery
}
Po wpisaniu
String s = fromSerachJSON.getNazwa;
występuje ten błąd:
10-07 20:08:12.149 6565-6565/bjd.adrian.recyclerviewandjson E/AndroidRuntime: FATAL EXCEPTION: main
Process: bjd.adrian.recyclerviewandjson, PID: 6565
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at bjd.adrian.recyclerviewandjson.MainActivity$1.onResponse(MainActivity.java:51)
at bjd.adrian.recyclerviewandjson.MainActivity$1.onResponse(MainActivity.java:43)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:78)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at bjd.adrian.recyclerviewandjson.MainActivity$1.onResponse(MainActivity.java:51)
at bjd.adrian.recyclerviewandjson.MainActivity$1.onResponse(MainActivity.java:43)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:78)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
Szukałem w internecie jak to zrobić ale nic nie działa :-(