从JSON文件中获取错误的数据

时间:2017-09-14 08:46:57

标签: android json gson android-webview

我将数据(url)从json文件加载到WebView(使用gson)。当我通过静态变量(WebView)从不同的Activity加载数据时,我得到了我的JSON文件的第12个url条目。当我将数据加载到我的Activity的内部WebView时,我得到了它应该的第一个URL。

 OtherActivity.mWebView1.loadUrl(JsonData.getUrl()); --> here i get the 12th url
 mWebView2.loadUrl(JsonData.getUrl()); --> here i get the 1st url

他们都使用相同的方法从JSON文件(gson)加载数据:

@SerializedName("url")
@Expose
private String url;


public String getUrl() {return url;}

public void setUrl(String url) {
    this.url = url;
}

这是我的LoadJsonFromAsset类:

 public class SwipeUtils {



public static List<AdInfo> loadProfiles(Context context){
    try{
        GsonBuilder builder = new GsonBuilder();
        Gson gson = builder.create();
        JSONArray array = new JSONArray(loadJSONFromAsset(context, "adInfo.json"));
        List<AdInfo> adInfoList = new ArrayList<>();
        adInfoList.indexOf("");
        for(int i=0;i<array.length();i++){
            AdInfo adInfo = gson.fromJson(array.getString(i), AdInfo.class);
            adInfoList.add(adInfo);
            Log.d("test",adInfo.toString());
        }
        return adInfoList;
    }catch (Exception e){
        e.printStackTrace();
        return null;
    }
}


private static String loadJSONFromAsset(Context context, String jsonFileName) {
    String json = null;
    InputStream is=null;
    try {
        AssetManager manager = context.getAssets();
        Log.d(TAG,"path "+jsonFileName);
        is = manager.open(jsonFileName);
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json = new String(buffer, "UTF-8");
    } catch (IOException ex) {
        ex.printStackTrace();
        return null;
    }
    return json;
}

}

1 个答案:

答案 0 :(得分:0)

问题是我设置loadUrl()的方法。它是在一个循环中,在loadUrl()工作的时候它已经在第12个条目。