Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android studio中将json数组转换为json对象_Android_Arrays_Json - Fatal编程技术网

在Android studio中将json数组转换为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

我试图在android studio中创建自动完成的文本视图。我在visual studio中制作了web api,并返回json数组,其中包含城市名称,如下所示:

["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())