2014-11-08 148 views
0

我在的JSON輸出的數組:Java:正確解析Json?

print json_decode($array); 

字符串結果:

{"dbonline":true,"success":true,"action":"geturls","authorized":true, 
"urls":[ 
    {"url":"http:\/\/www.namhost.com"}, 
    {"url":"http:\/\/www.voomka.com"}, 
    {"url":"http:\/\/www.ournamibia.com"}] 
} 

注意//一部分。這就是我找回來,從這樣的:

header('Content-Type: application/json'); 
echo json_encode($result); 

然後我用Java搶在那裏,這是印刷的URL,然後我分析它:

private ArrayList<String> extractUrls(String jsonText) 
{ 
    ArrayList<String> urlResults = new ArrayList<String>(); 
    JsonParserFactory factory = JsonParserFactory.getInstance(); 
    JSONParser parser   = factory.newJsonParser(); 
    Map jsonData     = parser.parseJson(jsonText); 
    ArrayList urlList   = (ArrayList)jsonData.get("urls"); 
    for (Object u : urlList) 
    { 
     HashMap hashmap = (HashMap)u; 
     String url = hashmap.get("url").toString(); 
     urlResults.add(url); 
    } 
    return urlResults; 
} 

的問題是,數組列表正在返回的值有:

[0] = (String) "http:\\/\\/www.namhost.com\\/blog\\/2014-06-11\\/how-to-choose-right-software-solution" 

換句話說,json「slashing」還沒有被刪除。我不想在這裏手動刪除它,因爲它似乎問題可能是直接解析。

任何想法如何解決這個問題?

+0

加上'JSON_UNESCAPED_SLASHES'作爲第二個參數 – Ohgodwhy 2014-11-08 07:02:03

+0

回聲json_encode($結果,JSON_UNESCAPED_SLASHES)的;說 - >使用未定義的常量JSON_UNESCAPED_SLASHES - 假設'JSON_UNESCAPED_SLASHES'在 – coderama 2014-11-08 07:02:28

+0

版本的PHP? – Ohgodwhy 2014-11-08 07:03:39

回答

0

剛剛嘗試這樣的代碼:沒有必要轉義序​​列

{"dbonline":true,"success":true,"action":"geturls","authorized":true, 
    "urls":[ 
     {"url":"http://www.namhost.com"}, 
      {"url":"http://www.voomka.com"}, 
      {"url":"http://www.ournamibia.com"}] 
    } 
+0

問題是它從PHP腳本中回來了? – coderama 2014-11-08 06:57:59

+0

我對代碼進行了更新,以顯示PHP如何將其吐出。這可能是一個PHP問題。 – coderama 2014-11-08 06:58:54

+0

你有沒有試過上面的代碼 – 2014-11-08 07:00:42