[英]How to convert json in java?
我在cellHashMap
有此值
key = name
value = {name ={uri=/book/bookItem3(852)/header}}
我只想得到
book/bookItem3(852)/header
(最后一個_不帶{uri =和}
我做了這段代碼:
Map<String, Object> cellHashMap = (HashMap<String, Object>) cell.getValue();
String cellValue = cellHashMap.get("name").toString(); //$NON-NLS-1$
String[] splitCell = cellValue.split("uri=/"); //$NON-NLS-1$
return splitCell[1].substring(0, splitCell[1].length() - 1);
拆分的結果是:
splitCell[0] = {
splitCell[1] = sbook/bookItem3(852)/header}
它正在工作,但我認為這不是最好的方法
你知道更好的方法嗎?
我的猜測是,您不希望解析JSON,因為如前所述,您的String畢竟不是JSON。 但是,您可以通過正常的String操作來解析此String,如下所示:
final static String str = "{name ={uri=/book/bookItem3(852)/header}}";
public static void main (String[] args) {
String value = str.substring((str.indexOf("uri=/") + "uri=/".length()), str.indexOf("}"));
System.out.println(value);
}
輸出:
book / bookItem3(852)/ header
這不是JSON(請參閱上面的注釋)。 如果您想解析所顯示的內容(而不是您所說的內容),則可以使用以下內容:
int start = myString.indexOf("uri=");
if (start == -1) {
// handle "not found"
}
int end = myString.indexOf("}", start + "uri=".length());
if (end == -1) {
// handle "not found"
}
String goal = myString.substring(start + "uri=".length(), end);
// goal = "book/bookItem3(852)/header"
或正則表達式:
Matcher m = Pattern.compile("uri=([^}]+)").matcher(myString);
if (m.find()) {
goal = m.group(1); // "book/bookItem3(852)/header"
} else {
// handle not found
}
我不確定您是否有能力在字典中實際存儲JSON值,但是如果您可以將格式更正為實際JSON,則可以使用JSONObject類來解析JSON字符串並檢索數據。
String jsonstring = "The valid JSON string in your hashmap"
JSONObject json = new JSONObject(jsonstring)
String path = (String) json.get("name");
同樣,此方法僅在您的哈希映射存儲有效JSON時才有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.