【问题标题】:How can i parse a PHP array from Android SDK?如何从 Android SDK 解析 PHP 数组?
【发布时间】:2011-02-17 04:26:38
【问题描述】:

我不喜欢其他人尽我的职责,但我不是 RegEx 专家,我认为你们会很有帮助。

我正在构建一个时事通讯 Android 应用程序,它使用一个暴露在 http 中的数组,如下所示:

Array
(
    [Last_News] => Array
    (
        [last-news-1] => Array
            (
                [ID] => 711
                [Title] => Here goes the title text
                [Bullet] => Here goes the basic description of the news.
            )

)

我正在尝试使用 RegEx:

String pattern = ".Ultima_Hora. => Array . .ultima_hora-[0-9]*.";
    Pattern p = Pattern.compile(pattern);


    Matcher m = p.matcher(str);
    while (m.find()) { // Find each match in turn; String can't do this.
        //String s = m.group();
    String s = m.toString();
         txt.setText(s);

    }

但是,当我运行我的应用程序时,我可以看到从我的 httpclient 实现下载的所有文本。 有人可以举例说明我如何在 [last-news-1] 中打印数组? 非常感谢。

【问题讨论】:

  • 为什么不使用 JSON?
  • 一旦你的头撞到某个东西足够长的时间,寻求帮助并没有错。是的,正如所指出的,在应用程序之间传递数据是 JSON 的用途。 android 和 php 都可以原生对话 json。
  • 我对那些暴露了“webservice”的人提出了同样的问题。如果他们将使用 JSOL 或 XML,我可以比您回答的更快地解析一些可用的库:)。该网站是this
  • 另外,他们输出什么样的webservice print_r? =S
  • @Enrique: Abso-****-lutley,当然,如果可以的话。另外,你确定他们的 iPad 应用使用了这个精确的输出吗?

标签: java php android regex arrays


【解决方案1】:

我不知道 Java 使用哪种风格,但在 PHP 中我会使用以下正则表达式:

\[ID\] => (.*)
\[Title\] => (.*)
\[Bullet\] => (.*)

现在的问题是,如果每个键都允许有换行符,那么我会这样做:

\[ID\] => ([^\[]*)
\[Title\] => ([^\[]*)
\[Bullet\] => ([^\[]*)

但是如果它包含[,它将不会匹配整个字符串,但我想这就是你必须付出的代价。

【讨论】:

  • 好的,当我尝试 [ID] => (.*) 时,SDK 不会发出任何噪音并且运行良好,但是当我的应用程序部署在我的设备中时,再次显示所有纯文本。当我尝试作为匹配器时,\[ID\] => ([^[]*) 说运行时出错,说需要 [.
  • @Enrique:(.*) 是组捕获,我不知道您如何使用 Java 访问组捕获,但我想这与注释的 m.group() 行有关?另外,尝试删除m.toString() 看看会发生什么。
  • 可以,可以使用m.group的方法打印匹配m。但是,我需要用 Java 做一个简单的例子来说明如何使用 RegEx。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多