我有一个Java Rest API @PUT。哪个是接收json数据,如下面的格式所示
[ “NAME1,scope1,值1”, “NAME2,scope2,值2”]
我在我的Java API方法中获得此值为
(String someList)
someList将包含[“name1,scope1,value1”,“name2,scope2,value2”]
如何在字符串数组中获取这些值(“name1,scope1,value1”和“name2,scope2,value2”)?
答案 0 :(得分:1)
使用org.json包,这样做(假设响应为responseString中的String):
JSONArray myJSON = new JSONArray(responseString);
String[] myValues = new String[myJSON.length];
for(int i=0; i<myValues.length; i++) {
myValues[i] = myJSON.getString(i);
}
如果你想在myValues []中使用','作为分隔符拆分字符串,你可以这样做:
String[] innerArray = myValues[i].split(",");
答案 1 :(得分:0)
您可以将部件放入String
的数组中,只需一行:
String[] parts = someList.replaceAll("^\\[\"|\"\\]$", "").split("\",\"");
对replaceAll()
的调用剥离了前导和尾随JSON装饰,剩下的内容将分割为目标部分之间出现的内容,即","
请注意,由于有效json的灵活性,使用JSON库比使用“基于字符串”的方法更安全。仅在无法使用json库时才使用此选项。
答案 2 :(得分:0)
示例JSON代码:
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
class JsonDecodeDemo
{
public static void main(String[] args)
{
JSONParser parser=new JSONParser();
String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
System.out.println("s = " + s);
try{
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
System.out.println("The 2nd element of array");
System.out.println(array.get(1));
System.out.println();
JSONObject obj2 = (JSONObject)array.get(1);
System.out.println("Field \"1\"");
System.out.println(obj2.get("1"));
s = "{}";
obj = parser.parse(s);
System.out.println(obj);
s= "[5,]";
obj = parser.parse(s);
System.out.println(obj);
s= "[5,,2]";
obj = parser.parse(s);
System.out.println(obj);
}catch(ParseException pe){
System.out.println("position: " + pe.getPosition());
System.out.println(pe);
}
}
}
你可以参考这个。