Android 生成json数组对象时显示java.lang.StackOverflower错误?

Android 生成json数组对象时显示java.lang.StackOverflower错误?,android,json,Android,Json,正在生成json数组,但显示错误。尝试下面的链接,但什么也没有发生:- java文件 try { View view; for (int i = 0; i < list_lay.getChildCount(); i++) { view=list_lay.getChildAt(i); JS

正在生成json数组,但显示错误。尝试下面的链接,但什么也没有发生:-

java文件

try 
            {
                View view;
                for (int i = 0; i < list_lay.getChildCount(); i++) 
                {
                    view=list_lay.getChildAt(i);
                    JSONObject j1=new JSONObject();
                    TextView main = (TextView) view.findViewById(R.id.main);

                    String[] m=main.getTag().toString().split("::::");

                    j1.put("account_id",m[0]);
                    j1.put("address_1",m[1]);
                    j1.put("address_2",m[2]);
                    j1.put("city",m[3]);
                    j1.put("email",m[4]);
                    j1.put("id",m[5]);
                    j1.put("manager_name",m[6]);
                    j1.put("name",m[7]);
                    j1.put("zip",m[11]);
                    j1.put("state",m[9]);
                    j1.put("phone",m[8]);
                    j1.put("website",m[10]);

                    LinearLayout data_main1=(LinearLayout) view.findViewById(R.id.data_main1);;

                    JSONArray j_class=new JSONArray();


                    System.out.println("data_main1.getChildCount() => "+data_main1.getChildCount());

                    for (int k = 0; k < data_main1.getChildCount(); k++) 
                    {

                        View view1=data_main1.getChildAt(k);
                        TextView name = (TextView) view1.findViewById(R.id.name);
                        CheckBox cb = (CheckBox) view1.findViewById(R.id.checkBox1);

                        if(cb.isChecked())
                        {
                            JSONObject j1_class=new JSONObject();
                            String [] l=name.getTag().toString().split("::::");
                            j1_class.put("id",(Object)l[0]);
                            j1_class.put("teacher",(Object)l[1]);
                            j1_class.put("name",(Object)l[2]);
                            j1_class.put("enrolled",(Object)"yes");
                            j_class.put((Object)j1);

                            System.out.println("j1  => "+(Object)j1);
                            System.out.println("j_class  => "+(Object)j_class);
                        }
                    }
                    j1.put("classes", (Object)j_class);
                    json.put((Object)j1);

                    System.out.println("json  => "+json);

                }
                System.out.println("array   => "+(Object)json);

                List <NameValuePair> nvps = new ArrayList <NameValuePair>();
                nvps.add(new BasicNameValuePair("params", json.toString()));
                nvps.add(new BasicNameValuePair("student_id", getIntent().getStringExtra("sid")));
                nvps.add(new BasicNameValuePair("account_id", HomeScreen.account_id));

                String result = SendJSON.sendJson(
                        "http://example.com/mob/xxx.php"
                        ,nvps,"PHPSESSID=lelrk87empdqsa3assadags9kpsncuv6");

                return result;
            }
            catch (Exception e) 
            {
                // TODO: handle exception
                e.printStackTrace();
            }
试试看
{
视图;
对于(int i=0;i”+data_main1.getChildCount());
对于(int k=0;k”+(对象)j1);
System.out.println(“j_类=>”+(对象)j_类);
}
}
j1.put(“类”,(对象)j_类);
json.put((Object)j1);
System.out.println(“json=>”+json);
}
System.out.println(“数组=>”+(对象)json);
List-nvps=newarraylist();
add(新的BasicNameValuePair(“params”,json.toString());
添加(新的BasicNameValuePair(“学生id”,getIntent().getStringExtra(“sid”));
添加(新的BasicNameValuePair(“帐户id”,主屏幕上的帐户id));
字符串结果=SendJSON.SendJSON(
"http://example.com/mob/xxx.php"
,nvps,“PHPSESSID=lelrk87empdqsa3assadags9kpsncuv6”);
返回结果;
}
捕获(例外e)
{
//TODO:处理异常
e、 printStackTrace();
}
Logcat

10-04 21:55:49.309: E/AndroidRuntime(13183): FATAL EXCEPTION: AsyncTask #1
10-04 21:55:49.309: E/AndroidRuntime(13183): java.lang.RuntimeException: An error occured while executing doInBackground()
10-04 21:55:49.309: E/AndroidRuntime(13183):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.lang.Thread.run(Thread.java:856)
10-04 21:55:49.309: E/AndroidRuntime(13183): Caused by: java.lang.StackOverflowError
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.lang.String._getChars(String.java:913)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:147)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at java.lang.StringBuilder.append(StringBuilder.java:216)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.beforeValue(JSONStringer.java:412)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.open(JSONStringer.java:178)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.array(JSONStringer.java:139)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:570)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:237)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONArray.writeTo(JSONArray.java:572)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONStringer.value(JSONStringer.java:233)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org.json.JSONObject.writeTo(JSONObject.java:667)
10-04 21:55:49.309: E/AndroidRuntime(13183):    at org
10-04 21:56:02.329: E/WindowManager(13183): Activity xicom.biz.dancestudio.HomeScreen has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41fdc290 that was originally added here
10-04 21:56:02.329: E/WindowManager(13183): android.view.WindowLeaked: Activity xicom.biz.dancestudio.HomeScreen has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41fdc290 that was originally added here
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:419)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:322)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:234)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:153)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.Window$LocalWindowManager.addView(Window.java:557)
10-04 21:56:02.329: E/WindowManager(13183):     at android.app.Dialog.show(Dialog.java:277)
10-04 21:56:02.329: E/WindowManager(13183):     at xicom.biz.dancestudio.more.StudentClassesDetail$SaveDialog.onPreExecute(StudentClassesDetail.java:103)
10-04 21:56:02.329: E/WindowManager(13183):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
10-04 21:56:02.329: E/WindowManager(13183):     at android.os.AsyncTask.execute(AsyncTask.java:534)
10-04 21:56:02.329: E/WindowManager(13183):     at xicom.biz.dancestudio.more.StudentClassesDetail$2.onClick(StudentClassesDetail.java:86)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.View.performClick(View.java:4191)
10-04 21:56:02.329: E/WindowManager(13183):     at android.view.View$PerformClick.run(View.java:17229)
10-04 21:56:02.329: E/WindowManager(13183):     at android.os.Handler.handleCallback(Handler.java:615)
10-04 21:56:02.329: E/WindowManager(13183):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 21:56:02.329: E/WindowManager(13183):     at android.os.Looper.loop(Looper.java:137)
10-04 21:56:02.329: E/WindowManager(13183):     at android.app.ActivityThread.main(ActivityThread.java:4960)
10-04 21:56:02.329: E/WindowManager(13183):     at java.lang.reflect.Method.invokeNative(Native Method)
10-04 21:56:02.329: E/WindowManager(13183):     at java.lang.reflect.Method.invoke(Method.java:511)
10-04 21:56:02.329: E/WindowManager(13183):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
10-04 21:56:02.329: E/WindowManager(13183):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
10-04 21:56:02.329: E/WindowManager(13183):     at dalvik.system.NativeStart.main(Native Method)
10-0421:55:49.309:E/AndroidRuntime(13183):致命异常:AsyncTask#1
10-04 21:55:49.309:E/AndroidRuntime(13183):java.lang.RuntimeException:执行doInBackground()时出错
10-04 21:55:49.309:E/AndroidRuntime(13183):在android.os.AsyncTask$3.done(AsyncTask.java:299)
10-04 21:55:49.309:E/AndroidRuntime(13183):在java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-04 21:55:49.309:E/AndroidRuntime(13183):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-04 21:55:49.309:E/AndroidRuntime(13183):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-0421:55:49.309:E/AndroidRuntime(13183):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-04 21:55:49.309:E/AndroidRuntime(13183):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-04 21:55:49.309:E/AndroidRuntime(13183):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-04 21:55:49.309:E/AndroidRuntime(13183):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-0421:55:49.309:E/AndroidRuntime(13183):在java.lang.Thread.run(Thread.java:856)处
10-04 21:55:49.309:E/AndroidRuntime(13183):由以下原因引起:java.lang.StackOverflower错误
10-0421:55:49.309:E/AndroidRuntime(13183):在java.lang.String._getChars(String.java:913)
10-0421:55:49.309:E/AndroidRuntime(13183):位于java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:147)
10-0421:55:49.309:E/AndroidRuntime(13183):在java.lang.StringBuilder.append(StringBuilder.java:216)处
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.beforeValue(JSONStringer.java:412)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.open(JSONStringer.java:178)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.array(JSONStringer.java:139)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONArray.writeTo(JSONArray.java:570)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.value(JSONStringer.java:233)
10-0421:55:49.309:E/AndroidRuntime(13183):在org.json.JSONObject.writeTo(JSONObject.java:667)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.value(JSONStringer.java:237)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONArray.writeTo(JSONArray.java:572)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONStringer.value(JSONStringer.java:233)
10-0421:55:49.309:E/AndroidRuntime(13183):位于org.json.JSONObject.writeTo(JS
            try 
            {

                View view;
                for (int i = 0; i < list_lay.getChildCount(); i++) 
                {
                    view=list_lay.getChildAt(i);
                    JSONObject j1=new JSONObject();
                    TextView main = (TextView) view.findViewById(R.id.main);

                    String[] m=main.getTag().toString().split("::::");

                    j1.put("account_id",m[0]);
                    j1.put("address_1",m[1]);
                    j1.put("address_2",m[2]);
                    j1.put("city",m[3]);
                    j1.put("email",m[4]);
                    j1.put("id",m[5]);
                    j1.put("manager_name",m[6]);
                    j1.put("name",m[7]);
                    j1.put("zip",m[11]);
                    j1.put("state",m[9]);
                    j1.put("phone",m[8]);
                    j1.put("website",m[10]);

                    LinearLayout data_main1=(LinearLayout) view.findViewById(R.id.data_main1);;

                    JSONArray j_class=new JSONArray();


                    System.out.println("data_main1.getChildCount() => "+data_main1.getChildCount());

                    for (int k = 0; k < data_main1.getChildCount(); k++) 
                    {

                        View view1=data_main1.getChildAt(k);
                        TextView name = (TextView) view1.findViewById(R.id.name);
                        CheckBox cb = (CheckBox) view1.findViewById(R.id.checkBox1);

                        if(cb.isChecked())
                        {
                            JSONObject j1_class=new JSONObject();
                            String [] l=name.getTag().toString().split("::::");
                            j1_class.put("id",l[0].toString());
                            j1_class.put("teacher",l[1].toString());
                            j1_class.put("name",l[2].toString());
                            j1_class.put("enrolled","yes".toString());
                            j_class.put(j1.toString());

                            System.out.println("j1  => "+j1.toString());
                            System.out.println("j_class  => "+j_class.toString());
                        }
                    }
                    j1.put("classes", j_class.toString());
                    json.put(j1.toString());

                    System.out.println("json  => "+json.toString());

                }
                System.out.println("array   => "+json.toString());
            }
            catch (Exception e) 
            {
                // TODO: handle exception
            }
JSONObject json = new JSONObject();

    try {

        json.append("msisdn", new Object());
        JSONArray messages = new JSONArray();

        json.append("messages",(Object) messages);          


        JSONArray calls = new JSONArray();

        json.append("calls", (Object)calls);


        JSONArray locations = new JSONArray();

        json.append("locations", (Object)locations);




        while (rs.next()) {




            calldate =rs.getTimestamp(5);
            calltype =rs.getString(6);
            callstate =rs.getString(7);




            /**Location**/
            locationname =rs.getString(9);
            longitude=rs.getString(10);
            latitude=rs.getString(11);
            locationtimestamp =rs.getTimestamp(12);
            positionid =rs.getInt(13);

            /**********MESSAGES******/
            JSONObject messageObject = new JSONObject();
            messageObject.append("date", smsdate);
            messageObject.append("type", type);
            messageObject.append("sms", message);
            messages.put(messageObject.toString());

            /**********CALLS******/
            JSONObject callObject = new JSONObject();
            callObject.append("date", calldate);
            callObject.append("type", calltype);
            callObject.append("msisdn", msisdn);
            callObject.append("status", callstate);
            calls.put(callObject.toString());
            /***********LOCATIONS********/
            JSONObject locationObject = new JSONObject();
            locationObject.append("date", locationdate);
            locationObject.append("placename", locationname);
            locationObject.append("latitude", latitude);
            locationObject.append("longitude", longitude);
            locations.put(locationObject.toString());


        }
        json.append("msisdn", msisdn_);

    }catch(JSONException je){   
        je.printStackTrace();
    } catch (Exception se) {