Android:Rest api返回不完整的响应

时间:2015-02-13 08:01:01

标签: android json rest jsonobject

我正在使用一个宁静的网络服务,它将数据从sql server返回到我的Android应用程序,如果我得到100条记录就可以了,但是如果得到1,000条记录,我的日志会显示不完整和破坏的json。

    @Override
    public ArrayList<CRM_table> doInBackground(Void... params) {

        RestAPI api = new RestAPI();
            RestAPI api = new RestAPI();
        try {
            Log.e( "In background try block","yee"); 
            JSONObject jsonObj = api.GetDoctors(num);
            JSONParser parser = new JSONParser();
            Log.e( "doc list", jsonObj.toString()); 

            //table = parser.parseCrmTable(jsonObj);
                int itemCount = table.size();
            Log.d("total records",Integer.toString(itemCount));


        } catch (Exception e) {
            Log.e( "bg error", e.getMessage()); 

        }
        return table;
    }

1 个答案:

答案 0 :(得分:1)

在您的代码&#34; doc list&#34;日志可能被截断。 &#34;总记录&#34;是一个整数,所以它被截断了。

记录&#34; jsonObj&#34;唯一的方法是将其存储在一个文件中。 您必须添加写入外部存储的权限:

    <manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>

然后将您的对象放入文件中:

 // Get the directory for the app's private pictures directory. 
    File file = new File(context.getExternalFilesDir(
            Environment.DIRECTORY_xxxxxx), fileName);
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    BufferedWriter writer = null;
try
{
    writer = new BufferedWriter( new FileWriter( file));
    writer.write( yourstring);

}
catch ( IOException e)
{
}
finally
{
    try
    {
        if ( writer != null)
        writer.close( );
    }
    catch ( IOException e)
    {
    }
}