1

約1,30,000レコードのドキュメントを保存しようとしましたが、bulksavedocumentメソッドを使用してドキュメントを保存しましたが、次のエラーが発生します

 java.lang.NullPointerException
at com.fourspaces.couchdb.Database.bulkSaveDocuments(Database.java:280)

バルクドキュメントを保存するために使用したコードは次のとおりです。

JSONArray json=new JSONArray(); 
Document[] newdoc = null;
newdoc = new Document[json.size()];                      
for(int i=0;i<json.size();i++)
{
    Document singleDoc = new Document(json.getJSONObject(i));
    newdoc[i]=singleDoc;
}         
Session s = new Session("localhost",5984);
Database db = s.getDatabase("test"); 

db.bulkSaveDocuments(newdoc);

ソースコードと一緒にプログラムをデバッグしようとすると、次のエラーが発生します

   net.sf.json.JSONException: A JSONArray text must start with '[' at character 1 of {"db_name":"item_masters_test","doc_count":0,"doc_del_count":0,"update_seq":0,"purge_seq":0,"compact_running":false,"disk_size":79,"instance_start_time":"1337249297703950","disk_format_version":5,"committed_update_seq":0}
at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:499)
at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1116)
at net.sf.json.JSONArray._fromString(JSONArray.java:1197)
at net.sf.json.JSONArray.fromObject(JSONArray.java:127)
at net.sf.json.JSONArray.fromObject(JSONArray.java:105)
at com.fourspaces.couchdb.CouchResponse.getBodyAsJSONArray(CouchResponse.java:129)
at com.fourspaces.couchdb.Database.bulkSaveDocuments(Database.java:282)
at ItemMasterTest4.main(ItemMasterTest4.java:565)

この例外を取り除くための解決策を提案してください。

4

1 に答える 1

1

このJSONライブラリはよくわかりませんが、これ

JSONArray json=new JSONArray(); 

おそらくサイズ 0 (空) の配列です。

したがって、ループはインデックス 0 で入りますが、それは存在しません。そう

json.getJSONObject(i)

おそらくnullを返します。


これどこに書いてるんだよ

for(int i=0;i<json.size();i++)

あなたはおそらくそれを意味します

for(int i=0;i<json.size()-1;i++)
于 2012-05-15T09:19:08.413 に答える