gpt4 book ai didi

java - 如何在Android中使用Java从服务器获取的字符串中使用Pipeline Break?

转载 作者:行者123 更新时间:2023-12-01 13:40:59 25 4
gpt4 key购买 nike

我从服务器收到此字符串响应:

12-26 09:47:39.175: I/responseString(704): 46||2||1||"1234"||"Site ID"||""||"2012-09-17 05:22:04"||"2013-04-26 07:47:23"||0||1||1<br />47||2||1||"1234"||"Search Name"||""||"2012-09-17 05:27:07"||"2013-04-26 07:47:23"||0||1||2<br />48||2||1||"1234"||"Company Name"||""||"2012-09-17 05:27:45"||"2013-04-26 07:47:23"||0||1||3<br />49||2||1||"1234"||"Contact Person's Title"||""||"2012-09-17 05:28:42"||"2013-04-26 07:47:23"||0||1||4<br />50||2||1||"1234"||"Contact Person's Name"||""||"2012-09-17 05:29:19"||"2013-10-01 11:12:36"||1||1||5<br />

我使用了此代码,但它无法正常工作。

 private void getSiteMenuFieldsData(String parameter)
{
String getSiteMenuFieldsData_String = ServerRequest1.sendRequest(url,parameter);
getSiteMenuFieldsData_Str_Array = getSiteMenuFieldsData_String.split("<br />");
Log.i("getSiteMenuFieldsData_Str_Array:",""+ getSiteMenuFieldsData_Str_Array);

for(int i=0;i<getSiteMenuFieldsData_Str_Array.length;i++)
{
Log.i("getParametersData_Str_Array :",getSiteMenuFieldsData_Str_Array[i]);
Log.i("getSiteMenuFieldsData_Str_Array[i]:",""+getSiteMenuFieldsData_Str_Array[i].split("\\||"));
String query = "INSERT INTO menu_fields(ID,menu_id,field_type_id,c4w_code,field_label,field_values,date_created,date_modified,is_required,is_static,field_order) " +
"VALUES ("+getSiteMenuFieldsData_Str_Array[i].split("\\||")+");";
Log.i("query result menu_fields:",""+query);
db.execSQL(query);
}
}

这是 LogCat:

12-26 09:47:40.331: I/getParametersData_Str_Array :(704): 46||2||1||"1234"||"Site ID"||""||"2012-09-17 05:22:04"||"2013-04-26 07:47:23"||0||1||1 12-26 09:47:40.604: I/Choreographer(704): Skipped 90 frames! The application may be doing too much work on its main thread. 12-26 09:47:41.125: I/getSiteMenuFieldsData_Str_Array[i]:(704): [Ljava.lang.String;@41219a48 12-26 09:47:41.354: I/query result menu_fields:(704): INSERT INTO menu_fields(ID,menu_id,field_type_id,c4w_code,field_label,field_values,date_created,date_modified,is_required,is_static,field_order) VALUES ([Ljava.lang.String;@413777e0);

这是在表中插入记录时出现的错误:

    > 
> 12-26 09:47:41.384: W/System.err(704):
> android.database.sqlite.SQLiteException: unrecognized token:
> "[Ljava.lang.String;@413777e0);" (code 1): , while compiling: INSERT
> INTO

> menu_fields(ID,menu_id,field_type_id,c4w_code,field_label,field_values,date_created,date_modified,is_required,is_static,field_order)
> VALUES ([Ljava.lang.String;@413777e0); 12-26 09:47:41.394:
> W/System.err(704): at
> android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native
> Method) 12-26 09:47:41.394: W/System.err(704): at
> android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
> 12-26 09:47:41.394: W/System.err(704): at
> android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
> 12-26 09:47:41.394: W/System.err(704): at
> android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
> 12-26 09:47:41.404: W/System.err(704): at
> android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
> 12-26 09:47:41.404: W/System.err(704): at
> android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
> 12-26 09:47:41.414: W/System.err(704): at
> android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
> 12-26 09:47:41.414: W/System.err(704): at
> android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
> 12-26 09:47:41.414: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.getSiteMenuFieldsData(MainActivity.java:295)
> 12-26 09:47:41.414: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:277)
> 12-26 09:47:41.434: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:1)
> 12-26 09:47:41.434: W/System.err(704): at
> android.os.AsyncTask$2.call(AsyncTask.java:287) 12-26 09:47:41.444:
> W/System.err(704): at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
> 12-26 09:47:41.454: W/System.err(704): at
> java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-26
> 09:47:41.454: W/System.err(704): at
> android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-26
> 09:47:41.454: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> 12-26 09:47:41.504: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> 12-26 09:47:41.567: W/System.err(704): at
> java.lang.Thread.run(Thread.java:856) 12-26 09:47:41.654:
> W/System.err(704): java.io.FileNotFoundException:
> /mnt/sdcard/taplaw.log: open failed: EACCES (Permission denied) 12-26
> 09:47:41.664: W/System.err(704): at
> libcore.io.IoBridge.open(IoBridge.java:416) 12-26 09:47:41.664:
> W/System.err(704): at
> java.io.FileOutputStream.<init>(FileOutputStream.java:88) 12-26
> 09:47:41.674: W/System.err(704): at
> com.survey.management.util.ExceptionHandler.logException(ExceptionHandler.java:55)
> 12-26 09:47:41.684: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.getSiteMenuFieldsData(MainActivity.java:319)
> 12-26 09:47:41.684: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:277)
> 12-26 09:47:41.684: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:1)
> 12-26 09:47:41.704: W/System.err(704): at
> android.os.AsyncTask$2.call(AsyncTask.java:287) 12-26 09:47:41.704:
> W/System.err(704): at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
> 12-26 09:47:41.714: W/System.err(704): at
> java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-26
> 09:47:41.724: W/System.err(704): at
> android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-26
> 09:47:41.724: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> 12-26 09:47:41.724: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> 12-26 09:47:41.724: W/System.err(704): at
> java.lang.Thread.run(Thread.java:856) 12-26 09:47:41.734:
> W/System.err(704): Caused by: libcore.io.ErrnoException: open failed:
> EACCES (Permission denied) 12-26 09:47:41.744: W/System.err(704): at
> libcore.io.Posix.open(Native Method) 12-26 09:47:41.744:
> W/System.err(704): at
> libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 12-26
> 09:47:41.754: W/System.err(704): at
> libcore.io.IoBridge.open(IoBridge.java:400) 12-26 09:47:41.775:
> W/System.err(704): ... 12 more 12-26 09:47:41.775: W/System.err(704):
> android.database.sqlite.SQLiteException: unrecognized token:
> "[Ljava.lang.String;@413777e0);" (code 1): , while compiling: INSERT
> INTO
> menu_fields(ID,menu_id,field_type_id,c4w_code,field_label,field_values,date_created,date_modified,is_required,is_static,field_order)
> VALUES ([Ljava.lang.String;@413777e0); 12-26 09:47:41.785:
> W/System.err(704): at
> android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native
> Method) 12-26 09:47:41.785: W/System.err(704): at
> android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
> 12-26 09:47:41.785: W/System.err(704): at
> android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
> 12-26 09:47:41.794: W/System.err(704): at
> android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
> 12-26 09:47:41.794: W/System.err(704): at
> android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
> 12-26 09:47:41.804: W/System.err(704): at
> android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
> 12-26 09:47:41.804: W/System.err(704): at
> android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
> 12-26 09:47:41.814: W/System.err(704): at
> android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
> 12-26 09:47:41.824: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.getSiteMenuFieldsData(MainActivity.java:295)
> 12-26 09:47:41.824: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:277)
> 12-26 09:47:41.824: W/System.err(704): at
> com.survey.management.activity.MainActivity$RequestForSiteMenuFields.doInBackground(MainActivity.java:1)
> 12-26 09:47:41.824: W/System.err(704): at
> android.os.AsyncTask$2.call(AsyncTask.java:287) 12-26 09:47:41.824:
> W/System.err(704): at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
> 12-26 09:47:41.834: W/System.err(704): at
> java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-26
> 09:47:41.844: W/System.err(704): at
> android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-26
> 09:47:41.844: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> 12-26 09:47:41.844: W/System.err(704): at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> 12-26 09:47:41.854: W/System.err(704): at
> java.lang.Thread.run(Thread.java:856)

最佳答案

尝试如下所示:

        String[] getSiteMenuFieldsData_Str_Array = getSiteMenuFieldsData_String
.split("<br />");
Log.i("getSiteMenuFieldsData_Str_Array:", ""
+ getSiteMenuFieldsData_Str_Array);

for (int i = 0; i < getSiteMenuFieldsData_Str_Array.length; i++) {
Log.i("getParametersData_Str_Array :",
getSiteMenuFieldsData_Str_Array[i].toString());
String[] str = getSiteMenuFieldsData_Str_Array[i].split("[|]");
StringBuilder tempQuery = new StringBuilder(
"INSERT INTO menu_fields(ID,menu_id,field_type_id,c4w_code,field_label,field_values,date_created,date_modified,is_required,is_static,field_order) "
+ "VALUES (");
for (String s : str) {
if (s.length() > 0)
tempQuery.append(s + ",");
}
tempQuery.deleteCharAt(tempQuery.lastIndexOf(","));
tempQuery.append(");");
String query = tempQuery.toString();
Log.i("query result menu_fields:", "" + query);

关于java - 如何在Android中使用Java从服务器获取的字符串中使用Pipeline Break?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com