Java Can';t解析JSONException Android Studio

Java Can';t解析JSONException Android Studio,java,android,json,android-studio,jsonexception,Java,Android,Json,Android Studio,Jsonexception,我不知道我的JSONData出了什么问题,但是我的代码捕获了JSONException,可能是无效值。。。?我的包含json数据的url是:。我已经在这个网站上使用了Json,它可以正常工作,但这个页面没有使用Json。。。为什么? 这是我的密码: public class Tab4Fragment extends Fragment { private ConnectivityManager manager; public static final String TAG = T

我不知道我的JSONData出了什么问题,但是我的代码捕获了JSONException,可能是无效值。。。?我的包含json数据的url是:。我已经在这个网站上使用了Json,它可以正常工作,但这个页面没有使用Json。。。为什么?

这是我的密码:

public class Tab4Fragment extends Fragment {

    private ConnectivityManager manager;
    public static final String TAG = Tab4Fragment.class.getSimpleName();
    private CurrentEventsString mCurrentEventsString;
    @InjectView(R.id.eventsText)
    TextView mJsonText;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (container == null) {
            return null;
        }

        View view = inflater.inflate(R.layout.tab_frag4_layout, container, false);
        ButterKnife.inject(this, view);

        String urlWebSite = "http://www.bundoransurfco.com/events/?json=1";

        if (isNetworkAvailable()) {
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url(urlWebSite)
                    .build();

            Call call = client.newCall(request);
            call.enqueue(new Callback() {
                @Override
                public void onFailure(Request request, IOException e) {
                    Log.d(TAG, "onFailure Network");
                }

                @Override
                public void onResponse(Response response) throws IOException {
                    try {
                        String jsonData = response.body().string();
                        Log.d(TAG, "onResponse jsonData : "+jsonData);

                        if (response.isSuccessful()) {
                            mCurrentEventsString = getCurrentDetails(jsonData);
                            Log.d(TAG, "onResponse Successful");

                            // Write in the main Thread.
                            getActivity().runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    updateTextEvents();
                                    Log.d(TAG, "UITHREAD");
                                }
                            });

                        } else {
                            alertUserAboutError();
                            Log.d(TAG, "ERROR");
                        }
                    } catch (IOException e) {
                        Log.e(TAG, "Exception caught: ", e);
                    } catch (JSONException e) {
                        Log.e(TAG, "Exception caught: ", e);
                    }
                }
            });
        } else {
            Toast.makeText(getActivity(), getString(R.string.network_unavailable_message), Toast.LENGTH_LONG).show();
        }

        Log.d(TAG, "Main UI code is running!");

        return view;
    }

    private void updateTextEvents() {
        mJsonText.setText(mCurrentEventsString.getJsonContent());
    }


    private boolean isNetworkAvailable() {
        manager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = manager.getActiveNetworkInfo();
        boolean isAvailable = false;
        if (networkInfo != null && networkInfo.isConnected()) {
        isAvailable = true;
        }

        return isAvailable;
        }

    private void alertUserAboutError() {
        AlertDialogFragment dialog = new AlertDialogFragment();
        dialog.show(getActivity().getFragmentManager(), "error_dialog");
    }

    private CurrentEventsString getCurrentDetails(String jsonData) throws JSONException {
        JSONObject events = new JSONObject(jsonData);

        JSONObject postJson = events.getJSONObject("posts");
        CurrentEventsString currentEventsString = new CurrentEventsString();
        String contentString = postJson.getString("content");

        //Events String
        String jsonText = stripHtml(contentString);
        Log.i(TAG, "CHECK THAT :" +jsonText);
        currentEventsString.setJsonContent(jsonText);


        return currentEventsString;
    }

    //Delete HTML Markup
    public String stripHtml(String html) {
        return Html.fromHtml(html).toString();
    } 
}
我的代码在
stringjsondata=response.body().String()之后停止
并进入
Log.e(标记“异常捕获:”,e)

我想要帖子中的字符串内容

我怎样才能解决这个问题?干杯

日志:

04-24 05:58:46.696    2140-2140/jardelcompany.bundoransurfco D/Tab4Fragment﹕ Main UI code is running!
04-24 05:58:47.228    2140-2174/jardelcompany.bundoransurfco D/Tab4Fragment﹕ onResponse jsonData : {"status":"ok","count":1,"pages":1,"category":{"id":6,"slug":"events","title":"Events","description":"","parent":0,"post_count":1},"posts":[{"id":6969,"type":"post","slug":"2014-calander-of-events","url":"http:\/\/www.bundoransurfco.com\/events\/2014-calander-of-events\/","status":"publish","title":"2015 Calendar of Events","title_plain":"2015 Calendar of Events","content":"<p>We open all year and have all our regular<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/beginners\/\"> surf lessons <\/a>and also <a href=\"http:\/\/www.bundoransurfco.com\/surf-stay\/lodge-packages\/\">surf and stay packages available year round<\/a>.<\/p>\n<p>We also have <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-camp\/\">week long surf camps<\/a> as well as <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/family-surf-and-stay-packages\/\">family surf and stay packages <\/a>all year.\u00a0Below is a\u00a0list of specific\u00a0events. We are open for other bookings when the events below are on. We can be flexible with dates for group bookings\u00a0and arrange specific packages : just call on 071-9841968 or email info@bundoransurfco.com.<\/p>\n<p><\/p>\n<p><strong>February 2015<\/strong><\/p>\n<p>7th-8th <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/improver-surf-weekends\/\">Improvers Surf Weekend with Surf Fit Ireland<\/a><\/p>\n<p>13th-15th<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-guiding\/\">\u00a0Surf Guiding weekend.<\/a> Explore the coast with our instructors. For improver and intermediate surfers<\/p>\n<p>20th-22nd\u00a0<a href=\"http:\/\/www.bundoransurfco.com\/blog\/singles-weekend\/\">Single Surfers Valentines Surf Weekend<\/a>. Meet new people, catch a few waves, have the craic. Only \u20ac79pps<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga weekend<\/a><\/p>\n<p><\/p>\n<p><strong>March 2015<\/strong><\/p>\n<p>7th-8th\u00a0<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/improver-surf-weekends\/\">Improvers Surf Weekend with Surf Fit Ireland<\/a><\/p>\n<p>13th-15th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\">Get Ready for Summer Surf Weekend<\/a>. For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>20th-22nd\u00a0<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-guiding\/\">Surf Guiding weekend.<\/a> Explore the coast with our instructors. For improver and intermediate surfers<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga weekend<\/a>.<\/p>\n<p><\/p>\n<p><strong>April 2015<\/strong><\/p>\n<p>3rd-6th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/easter-surf-packages\/\">Easter Surf Weekend<\/a><\/p>\n<p>17th-19th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\">Get Ready for Summer Surf Weekend<\/a>. For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>24th-26th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga Weekend<\/a><\/p>\n<p><\/p>\n<p><strong>May 2015<\/strong><\/p>\n<p>1st-4th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/may-bank-holiday-surf-weekend-2\/\">May Bank Holiday Surf Weekend<\/a>.\u00a0Surf, B&B, craic and BBQ<\/p>\n<p>8th-1oth <a href=\"http:\/\/www.bundoransurfco.com\/blog\/sup-tours\/\">Surf and SUP weekend<\/a>. Try a combination of surfing in the waves and SUP lessons on flat water. Perfect for beginners and families.<\/p>\n<p>15th-17th<a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\"> Get Ready for Summer Surf Weekend.<\/a> For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>22nd-24th\u00a0<a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga Weekend<\/a><\/p>\n<p>May 29th-June 1st June bank holiday surf weekend.\u00a0Surf, B&B, c
04-24 05:58:47.232    2140-2174/jardelcompany.bundoransurfco E/Tab4Fragment﹕ Exception caught:
    org.json.JSONException: Value [{"custom_fields":{},"comment_count":0,"tags":[],"status":"publish","excerpt":"<p>Check out what&#8217;s happening at  Surf Co<\/p>\n","comment_status":"closed","date":"2014-01-09 16:43:57","type":"post","url":"http:\/\/www.bundoransurfco.com\/events\/2014-calander-of-events\/","modified":"2015-04-01 14:27:02","content":"<p>We open all year and have all our regular<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/beginners\/\"> surf lessons <\/a>and also <a href=\"http:\/\/www.bundoransurfco.com\/surf-stay\/lodge-packages\/\">surf and stay packages available year round<\/a>.<\/p>\n<p>We also have <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-camp\/\">week long surf camps<\/a> as well as <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/family-surf-and-stay-packages\/\">family surf and stay packages <\/a>all year. Below is a list of specific events. We are open for other bookings when the events below are on. We can be flexible with dates for group bookings and arrange specific packages : just call on 071-9841968 or email info@bundoransurfco.com.<\/p>\n<p><\/p>\n<p><strong>February 2015<\/strong><\/p>\n<p>7th-8th <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/improver-surf-weekends\/\">Improvers Surf Weekend with Surf Fit Ireland<\/a><\/p>\n<p>13th-15th<a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-guiding\/\"> Surf Guiding weekend.<\/a> Explore the coast with our instructors. For improver and intermediate surfers<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/blog\/singles-weekend\/\">Single Surfers Valentines Surf Weekend<\/a>. Meet new people, catch a few waves, have the craic. Only €79pps<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga weekend<\/a><\/p>\n<p><\/p>\n<p><strong>March 2015<\/strong><\/p>\n<p>7th-8th <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/improver-surf-weekends\/\">Improvers Surf Weekend with Surf Fit Ireland<\/a><\/p>\n<p>13th-15th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\">Get Ready for Summer Surf Weekend<\/a>. For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/surf-school\/surf-guiding\/\">Surf Guiding weekend.<\/a> Explore the coast with our instructors. For improver and intermediate surfers<\/p>\n<p>20th-22nd <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga weekend<\/a>.<\/p>\n<p><\/p>\n<p><strong>April 2015<\/strong><\/p>\n<p>3rd-6th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/easter-surf-packages\/\">Easter Surf Weekend<\/a><\/p>\n<p>17th-19th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\">Get Ready for Summer Surf Weekend<\/a>. For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>24th-26th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga Weekend<\/a><\/p>\n<p><\/p>\n<p><strong>May 2015<\/strong><\/p>\n<p>1st-4th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/may-bank-holiday-surf-weekend-2\/\">May Bank Holiday Surf Weekend<\/a>. Surf, B&B, craic and BBQ<\/p>\n<p>8th-1oth <a href=\"http:\/\/www.bundoransurfco.com\/blog\/sup-tours\/\">Surf and SUP weekend<\/a>. Try a combination of surfing in the waves and SUP lessons on flat water. Perfect for beginners and families.<\/p>\n<p>15th-17th<a href=\"http:\/\/www.bundoransurfco.com\/blog\/get-ready-for-summer-surf-weekend\/\"> Get Ready for Summer Surf Weekend.<\/a> For anyone who has not been surfing all winter and wants to get back in the water<\/p>\n<p>22nd-24th <a href=\"http:\/\/www.bundoransurfco.com\/blog\/soul-surfers-yoga-weekend\/\">Surf and Yoga Weekend<\/a><\/p>\n<p>May 29th-June 1st June bank holiday surf weekend. Surf, B&B, craic and BBQ<\/p>\n<p><\/p>\n<p><strong>June 2015<\/strong><\/p>\n<p>5th-7
04-24 05:58:46.696 2140-2140/jardelcompany.bundoransurfco D/Tab4Fragment﹕ 主UI代码正在运行!
04-24 05:58:47.228 2140-2174/jardelcompany.bundoransurfco D/Tab4Fragment﹕ onResponse jsonData:{“状态”:“ok”,“计数”:1,“页面”:1,“类别”:{“id”:6,“slug”:“事件”,“标题”:“事件”,“描述”:“家长”:0,“发布计数”:1},“发布”:[{“id”:6969,“类型”:“发布”,“slug”:“2014年事件日历”,“url”:“http:\/\/www.bundoransurfco.com\/events\/2014年事件日历\/”,“状态”:“发布”,“标题”:“2015年事件日历”,“标题”:“2015年活动日历”,“内容”:我们全年开放,有我们所有的定期冲浪课程,全年都有冲浪和住宿套餐。\n我们也有为期一周的冲浪营以及全年的家庭冲浪和住宿套餐。\u00a0以下是具体的\u00a0活动列表。当下面的活动开始时,我们对其他预订开放。我们可以灵活安排gr的日期oup预订\u00a0并安排特定套餐:只需拨打071-9841968或发送电子邮件info@bundoransurfco.com.\n\n2015年2月\n第7-8届改良者冲浪周末与爱尔兰冲浪健身会\n第13-15届\u00a0冲浪指导周末。与我们的导师一起探索海岸。对于改良者和中级冲浪者\n第20-22届\u00a0单人冲浪者情人节冲浪周末。结识新朋友,冲浪几次,参加CRAC。只有\u20ac79pps\n20-22次冲浪和瑜伽周末\n\n\n2015年3月\n7-8次\u00a0改良者冲浪周末与冲浪健身爱尔兰一起\n13-15次准备夏季冲浪周末。对于那些整个冬天都没有冲浪并想回到wat的人er\n20-22日\u00a0冲浪指导周末。与我们的教练一起探索海岸。对于即兴冲浪者和中级冲浪者\n20-22日冲浪和瑜伽周末。\n\n2015年4月\n3-6日复活节冲浪周末\n17-19日准备好夏季冲浪周末。对于那些整个冬天都没有冲浪并且想回到水里的人\n24-26冲浪和瑜伽周末\n\n2015年5月\n5月1-4日银行假日冲浪周末。\u00a0冲浪、B&B、craic和烧烤\n8-11冲浪和SUP周末。尝试在波浪中冲浪和在平坦水域上SUP课程的组合。非常适合初学者和家庭。\n15-17为夏季冲浪周末做好准备。适合任何有我整个冬天都在冲浪,想回到水里\n22-24\u00a0冲浪和瑜伽周末\n5月29日-6月1日银行假日冲浪周末。\u00a0冲浪,B&B,c
04-24 05:58:47.232 2140-2174/jardelcompany.bundoransurfco E/Tab4Fragment﹕ 捕获异常:
org.json.JSONException:Value[{“自定义”字段:{},“评论计数”:0,“标签:[],“状态”:“发布”,“摘录”:“查看在Surf公司发生的事情”,“评论状态”:“关闭”,“日期”:“2014-01-09 16:43:57”,“键入”:“发布”,“url”:“http:\/\/www.bundoransurfco.com\/events\/2014事件日历\/”,“修改”:“2015-04-01 14:27:02”,“内容”:"我们全年开放,提供所有常规冲浪课程,全年提供冲浪和住宿套餐。\n我们还提供为期一周的冲浪营以及全年的家庭冲浪和住宿套餐。以下是具体活动的列表。当以下活动开始时,我们会开放其他预订。我们可以灵活安排团体预订的日期并安排具体的套餐:只需拨打071-9841968或发送电子邮件即可info@bundoransurfco.com.\n\n2015年2月\n第7-8届改良者冲浪周末与爱尔兰冲浪健身会\n第13-15届冲浪指导周末。与我们的导师一起探索海岸。对于改良者和中级冲浪者\n第20-22届单人冲浪者情人节冲浪周末.结识新朋友,乘船冲浪,享受中俄国际机场。仅需79欧元/秒\n第20-22次冲浪和瑜伽周末\n\n\n2015年3月\n第7-8次改良者冲浪周末与冲浪健身爱尔兰一起冲浪\n第13-15次准备夏季冲浪周末。对于那些整个冬天都没有冲浪并且想回到水里的人\n第20-22次冲浪周末。与我们的导师一起探索海岸。适合即兴冲浪者和中级冲浪者\n第20-22次冲浪和瑜伽周末。\n\n2015年4月\n第3-6次复活节冲浪周末\n第17-19次准备夏季冲浪周末。对于那些整个冬天都没有冲浪并且想回到水里的人\n第24-26次冲浪和瑜伽周末d\n\n2015年5月\n5月1日至4日银行假日冲浪周末。冲浪、B&B、craic和烧烤\n第8至11日冲浪和SUP周末。尝试在波浪中冲浪和在平坦水域上SUP课程的组合。非常适合初学者和家庭。\n15日至17日为夏季冲浪周末做好准备。适合那些整个冬天都没有冲浪并想冲浪的人回到水里\n22-24日冲浪和瑜伽周末\n5月29日6月1日银行假日冲浪周末。冲浪、B&B、craic和烧烤\n\n2015年6月\n5-7日

您可以使用jsonArray和jsonObject获取数据,您可以看到如何在应用程序中使用api的示例。

posts属性不是jsonObject,而是jsonArray

尝试在getCurrentDetails方法中更改此行

JSONObject postJson = events.getJSONObject("posts");


您应该对JSONObject或JSONArray进行一些主动检查

您可以使用以下方法来完成此操作:

Object obj = new JSONTokener(stringData).nextValue();

if (obj instanceof JSONObject)
  //you got JSONobject here
else if (obj instanceof JSONArray)
  //you got JSONArray here

你能在这里发布完整的堆栈跟踪吗?@SachinGupta我用Logcat更新了它
Object obj = new JSONTokener(stringData).nextValue();

if (obj instanceof JSONObject)
  //you got JSONobject here
else if (obj instanceof JSONArray)
  //you got JSONArray here