将Json格式字符串与另一个字符串进行比较

时间:2013-03-28 15:50:08

标签: java string

我有两个字符串,一个是JSON字符串(我创建了一个json obj并使用obj.tostring()将其转换为字符串并将其传递给另一个类)和一个普通的字符串,字符没有单词或含义“ABCDEFG”。

以下是json格式字符串s1:

{"email_prompted":"n","error":"o","pin":"c","antiphishing_prompted":"n","antiphishing":"n"}

另一个字符串是s2:“EoPnAn”

在字符串s2中,字符E表示错误P表示引脚,A表示反网络钓鱼。

现在我想比较s1中的错误值“o”等于s2中的第二个字符。 我想用s2的第二,第四和第六个字符检查错误,引脚和反网络钓鱼的值。

如果三者相等,我想打印“ok”。

我不是要求你给我写一个代码,而是给我一个如何做的提示。 但如果您提供代码或示例,我们非常感激。

以下是对我想要的过度简化。 对不起,我的代码过于简单,但这会有用吗?

String s1 =“{”email_prompted“:”n“,”error“:”o“,”pin“:”c“,”antiphishing_prompted“:”n“,”反网络钓鱼“:”n“}” ;

String s2 =“EoPnAn”;

char [] p1 = s1.toCharArray();

char [] p2 = s2.toCharArray();

if(p1 [31] == p2 [1]&& p1 [41] == p2 [3]&& p1 [88] == p2 [5]){

System.out.println("OK");

}

2 个答案:

答案 0 :(得分:1)

在给出的示例中,结果不是“ok”(pin是“c”,而不是“n”):

    String s1 = "{\"email_prompted\":\"n\",\"error\":\"o\",\"pin\":\"c\",\"antiphishing_prompted\":\"n\",\"antiphishing\":\"n\"}";

    String s2 = "EoPnAn";

    String[] s1Parts = s1.replaceAll("[\\{}\"]", "").split("[,:]");
    boolean equal = s2.substring(1, 2).equals(s1Parts[3]) /* error */
            && s2.substring(3, 4).equals(s1Parts[5]) /* pin */
            && s2.substring(5, 6).equals(s1Parts[9]); /* antiphishing */
    if(equal) {
        System.out.println("ok");
    }

答案 1 :(得分:0)

您可以使用可用的Java库创建json字符串键值的映射,即s1 - 如JacksonGSON

解析s2并与上面地图中的值进行比较