切割JsonStr

时间:2015-06-02 12:03:49

标签: java android

我的代码如下:

        ServiceHandler sh = new ServiceHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);



        Log.d("Response: ", "> " + jsonStr);

        if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                contacts = jsonObj.getJSONArray(TAG_CONTACTS);

...

所以我想从Json Obj获取数据。我的失败了"尝试"部分因为它告诉我

" ... / B个在线 3370
{" bpactivities":[{" id":" 160",...... "

所以我假设它是因为像/ b>这样的标签

我现在要做的是切断jsonStr中的所有内容,直到" {" bpactivities":.."启动。

所以例如字符串现在是"我不希望这些东西在这里{" bpactivities":.. ,," "但我想要这样:" {" bpactivities":.." "

那我怎样才能在实际的jsonObj开始之前切断所有东西?有办法吗?

事先提前

2 个答案:

答案 0 :(得分:1)

如果您知道jsonObj开始之前的部分如何开始,您可以使用:

    String jsonStr = " i dont want this stuff to be here {\"bpactivities\": ..,, \" ";

    System.out.println(jsonStr.split(" here ")[1]);
    //returns_ {"bpactivities": ..,, " 

String.split(String regex)返回一个String-Array。在这种情况下,第一个元素包含正则表达式之前的部分,第二个元素包含最后一个部分。

您的解决方案:

JSONObject jsonObj = new JSONObject(jsonStr.substring(jsonStr.indexOf('{')));

同样有效,但如果在你的实际jsonObj之前有任何'{',它将导致问题。

答案 1 :(得分:0)

好吧我这样解决了:

JSONObject jsonObj = new JSONObject(jsonStr.substring(jsonStr.indexOf('{')));