{"smscresponse":{"calluid":"3333","to":"0000","event":"ABC"}}
我在用
split("{")[1]
要得到"calluid":"3333","to":"0000","event":"ABC"
但我得到
Illegal repetition
{ error.
我想要的是老茧。我怎样才能得到那个。提前致谢...
你可以逃避这个{
角色,比如......
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"
尝试使用拆分input.split("[{]");
String abc = "{\"smscresponse\":{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}";
String[] splittedValue = abc.split("[{]");
for(String value : splittedValue)
System.out.println(""+value);
String s = "{\"smscresponse\":{\"calluid\":\"3333\",\"to\":\"0000\",\"event\":\"ABC\"}}";
System.out.println(s.split("\\{")[2].split("}")[0]);
不要担心“\”。这将适用于您动态生成的数据。
编辑:这会让你“calluid”
System.out.println(s.split("\\{")[2].split("}")[0].split(",")[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();
}
}
}