【发布时间】:2013-12-19 17:46:39
【问题描述】:
我必须从网站中检索此 [type of] 字符串:
{"title":"En Loz\u00e8re, les entreprises sont incit\u00e9es \u00e0 passer \u00e0 la fibre","author":"Fran\u00e7ois Le Gall","date":...
我想要一个这样的对象:
myObject{
String title = "En Lozère, les entreprises sont incitées à passer à la fibre";
String author = "François le Gall";
...
}
这是我在 java 中检索字符串的方式:
String myJsonString = "";
try{
URLConnection conn = new URL("http://www.ariase.com/webservices/getArticle.php?id=3019").openConnection();
InputStream in = conn.getInputStream();
Scanner s = new Scanner(in);
s.useDelimiter("\\A");
while (s.hasNext())
myJsonString += s.next();
s.close();
in.close();
} catch(SocketTimeoutException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); }
RssJsonObject myParsedJsonObject = RssJsonObject.parseJson(myJsonString);
这是一个我必须解析的 Json 对象,没问题,但我有这个特殊字符,例如 \u00e0,我不知道如何替换......
我可以做几十个replaceAll("\u00e0", "à"); 但是,有没有任何预构建功能可以做到这一点?
我也可以编辑发送给我这个字符串的 php 页面,也许我忘记了任何 url_encode 或其他东西,我在 php 方面很糟糕。
这是我的 php 代码:
$query = "SELECT * FROM SITE.rssitem WHERE NEWSID = '".$newsId."'";
$eligibiliteDB->request($query);
$answer = $eligibiliteDB->first();
$tab = array(
"title" => strip_tags($answer['TITLE']),
"author" => strip_tags($answer['AUTHOR']),
"date" => strip_tags($answer['DATE']),
"img" => strip_tags("http://www.ariase.com/fr/news".$answer['MINIATURE']),
"description" => strip_tags($answer['DESCRIPTION']),
"content" => strip_tags($answer['FULLDESCRIPTION'].' '.$answer['CONCLUSION'])
);
echo json_encode($tab);
编辑:
上面是我的 Java 代码。
我不知道我的错误是来自java还是php部分。
而且我知道所有这些编码的东西,不太了解它,只知道我不想在我的应用程序中看到\u00e8而是'è'! :)
【问题讨论】:
-
您不需要进行任何更换。 JSON 解析器应该为您处理这一切。顺便说一下,尚不清楚 Java 是从哪里来的……
-
php 使用此字符串为我必须在 Android 应用程序中显示的文章创建网页。 Java部分是处理这个字符串并在我的应用程序中正确显示。
-
嗯,\u00e0 是您角色的 Unicode 符号。我认为你在某些时候有一些最终的不匹配。您必须进一步描述您在每个应用程序层(包括 db)使用的字符集,以及此时您看到的是 \u00e0 而不是“带有坟墓的小写字母 a”。
-
@eduine:但是 Java 与您的问题有什么关系?真的不清楚您是在寻求 PHP 部分还是 Java 部分的帮助。如果是 Java 部分,为什么没有显示任何 Java 代码?
-
您使用的是哪个库?什么是 RssJsonObject?我对 Gson
Map o = new Gson().fromJson(data, Map.class);没有任何问题(你可以使用你的类代替 Map)。