{"smscresponse":{"calluid":"3333","to":"0000","event":"ABC"}}
我正在使用
split("{")[1]
获取"calluid":"3333","to":"0000","event":"ABC"
但我得到了
Illegal repetition
{ error.
我想要的是大流量。我怎么能得到那个。 提前谢谢......
答案 0 :(得分:2)
您可以转义{
字符,例如......
String text = "{\"smscresponse\":
{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}";
String[] split = text.split("\\{");
System.out.println(split.length);
System.out.println(split[2]);
哪些输出......
3
"calluid":"3333","to":"0000","event":"ABC"}}
要获得“3333”,你可以做类似的事情......
split = split[2].split(":|,"); // Split on : or ,
System.out.println(split[1]);
哪个输出
"3333"
现在,如果你真的想要聪明,你可以试试像......
String[] split = text.split("\\{|:|,|\\}");
for (String part : split) {
System.out.println(part);
}
哪个输出
// Note, this is an empty line
"smscresponse"
// Note, this is an empty line
"calluid"
"3333"
"to"
"0000"
"event"
"ABC"
<强>更新... 强>
稍微好一点的解决方案可能是......
Pattern p = Pattern.compile("\"([^\"]*)\"");
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println(m.group());
}
哪个输出
"smscresponse"
"calluid"
"3333"
"to"
"0000"
"event"
"ABC"
答案 1 :(得分:1)
尝试使用input.split("[{]");
String abc = "{\"smscresponse\":{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}";
String[] splittedValue = abc.split("[{]");
for(String value : splittedValue)
System.out.println(""+value);
答案 2 :(得分:0)
String s = "{\"smscresponse\":{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}";
System.out.println(s.split("\\{")[2].split("}")[0]);
不要担心“\”。这适用于动态生成的数据。
编辑:这会让你“流淌”
System.out.println(s.split("\\{")[2].split("}")[0].split(",")[0]);
答案 3 :(得分:0)
创建给定字符串的JSON对象并解析JSON对象以获取值。使用库org.json
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonSimpleExample {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
JSONObject jsonObj = new JSONObject("{\"smscresponse\":{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}");
String calluid = (String) jsonObject.get("smscresponse").getString("calluid");
System.out.println(calluid);
} catch (ParseException e) {
e.printStackTrace();
}
}
}