2017-06-01 49 views

回答

0

只要打开从资产文件夹中的文件,这样

StringBuilder buf=new StringBuilder(); 
    InputStream json; 
    try { 
     json = context.getAssets().open("YOUR_FILE_NAME.txt"); 
    BufferedReader in= 
     new BufferedReader(new InputStreamReader(json, "UTF-8")); 
    String str; 

    while ((str=in.readLine()) != null) { 
     buf.append(str); 
    } 
    } 
    catch (IOException e1) { 
     e1.printStackTrace(); 
    } 
    result1 = buf.toString(); 

RESULT1将拥有完整的JSON从文件

然后使用这个库调用GSON解析JSON ...

这里是它的教程Json parsing through Gson

+1

你并不需要阅读JSON成一个字符串。 Gson能够从'InputStream'解析。 – CommonsWare

0

也许代码可以帮助你。

public class MainActivity extends Activity { 


private ListView listView; 

private void log(String msg) { 
    Log.d("DNB", this.getClass().getName() + ">>" + msg); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    this.listView = new ListView(this); 


    String jsonData = loadJsonFromAsset(); 
    String[] items = parseJson(jsonData); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); 

    listView.setAdapter(adapter); 
    setContentView(listView); 
    log("json from asset: " + jsonData); 

} 

private String[] parseJson(String jsonData) { 

    String[] items = new String[0]; 
    if (jsonData != null) { 
     try { 
      JSONArray jsonArray = new JSONArray(jsonData); 
      if (jsonArray != null) { 
       items = new String[jsonArray.length()]; 
       for (int i = 0; i < items.length; i++) { 
        items[i] = jsonArray.get(i).toString(); 
       } 
      } 
     } catch (JSONException e) { 
      log("err--" + e.toString()); 
     } 
    } 


    return items; 
} 


private String loadJsonFromAsset() { 
    InputStream stream; 
    try { 
     stream = getBaseContext().getAssets().open("json_list.txt"); 
     if (stream != null) { 
      int size = stream.available(); 
      byte[] buffer = new byte[size]; 
      stream.read(buffer); 
      stream.close(); 

      if (buffer != null) { 
       return new String(buffer); 
      } 
     } 
    } catch (IOException e1) { 
     log("err--" + e1.toString()); 
    } 
    return ""; 
} 

和JSON文件在资产

["item line 1","item line 2","item line 3"] 
相关问题