在Android studio中将json数组转换为json对象
我试图在android studio中创建自动完成的文本视图。我在visual studio中制作了web api,并返回json数组,其中包含城市名称,如下所示:在Android studio中将json数组转换为json对象,android,arrays,json,Android,Arrays,Json,我试图在android studio中创建自动完成的文本视图。我在visual studio中制作了web api,并返回json数组,其中包含城市名称,如下所示: ["Sarajevo","Mostar","Tuzla","Banja Luka","Zagreb","Split","Beograd"] 在AndroidStudio中,我创建了视图模型类 public class GradoviVM{ public List<String> Naziv; public Lis
["Sarajevo","Mostar","Tuzla","Banja Luka","Zagreb","Split","Beograd"]
在AndroidStudio中,我创建了视图模型类
public class GradoviVM{
public List<String> Naziv;
public List<String> Get()
{
return Naziv;
}
}
公共类gradovm{
公开名单;
公共列表Get()
{
返回纳齐夫;
}
}
在GradoviApi类中,我实现了与webapi通信的函数
public class GradoviApi {
public static void GetGradovi (final Context context, final MyRunnable<GradoviVM> onSuccess)
{
String url = Config.url + "/api/gradovi";
MyVolley.get(url, GradoviVM.class, new Response.Listener<GradoviVM>() {
@Override
public void onResponse(GradoviVM response) {
onSuccess.run(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MyApp.getContext(), "Greška u komunikaciji sa serverom: " + error.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
公共类GradoviApi{
公共静态void GetGradovi(最终上下文上下文,最终MyRunnable onSuccess)
{
字符串url=Config.url+“/api/gradovi”;
get(url,gradovm.class,new Response.Listener()){
@凌驾
公共void onResponse(gradovim响应){
onSuccess.run(响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(MyApp.getContext(),“Greška u komunikaciji sa serverom:+error.getMessage(),Toast.LENGTH_LONG.show();
}
});
}
}
这是自动完成文本视图所在活动的代码
public class PretragaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pretraga);
GradoviApi.GetGradovi(this, new MyRunnable<GradoviVM>() {
@Override
public void run(GradoviVM result) {
}
});
GradoviVM gradovi = new GradoviVM();
List<String> nazivi = gradovi.Get();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, nazivi);
AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.mjestoPolaskaACTV);
actv.setAdapter(adapter);
}
};
公共类PretragaActivity扩展了AppCompatiaActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pretraga);
GetGradovi(这个,新的MyRunnable(){
@凌驾
公共作废运行(gradovim结果){
}
});
gradovim gradovi=新的gradovim();
List nazivi=gradovi.Get();
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u下拉列表\u item\u 1line,nazivi);
AutoCompleteTextView actv=(AutoCompleteTextView)findViewById(R.id.mjestoPolaskaACTV);
actv.setAdapter(适配器);
}
};
错误表示预期类型为Begin对象,但为Begin数组 您的模型类假设它映射到的json中有一个
Naziv
属性。您应该能够更新代码以执行以下操作:
MyVolley.get(url, GradoviVM.class, new Response.Listener<ArrayList<String>>()
MyVolley.get(url,gradovm.class,new Response.Listener())