
String转成Map 求解释
转map型求高手NB的算法,str里有
不知道是不是不我引用的jar包不对
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher 展开
首先确认字符串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar两个包来自动解析解析。
使用Gson更简单些,只需要导入一个包就可以,但是他如果使用Object解析到int型的话或自动转成double型,需要定义一个准确的类来解析,不能直接使用Object。
示例:
Gson gson = new Gson()。
Map<String, Object> map = new HashMap<String, Object>()。
map = gson.fromJson(str, map.getClass())。
使用json-lib包的话需要导入更多的包,需要额外导入commons-lang.jar、ezmorph-1.0.4.jar、commons-logging-1.1.1.jar、commons-collections.jar、commons-beanutils.jar这5个包。
解析示例如下:
JSONObject jb = JSONObject.fromObject(str)。
Map<String, Object> map = (Map<String, Object>)jb。
如果你的字符串不是json格式,那你就需要自己使用split分割字符串,例如:
String str = "color:red|font:yahei|width:800|height:300"。
String[] strs = str.split("\\|")。
Map<String, String> m = new HashMap<String, String>()。
for(String s:strs){String[] ms = s.split(":");m.put(ms[0], ms[1])}。
JSONObject jasonObject = JSONObject.fromObject(str);
Map map = (Map)jasonObject;
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。 例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果: RegexLimit结果:2{ "boo", "and:foo" }:5{ "boo", "and", "foo" }:-2{ "boo", "and", "foo" }o5{ "b", "", ":and:f", "", "" }o-2{ "b", "", ":and:f", "", "" }o0{ "b", "", ":and:f" }调用此方法的 str.split(regex, n) 形式与以下表达式产生的结果完全相同: Pattern.compile(regex).split(str, n)参数:regex - 定界正则表达式 limit - 结果阈值,如上所述 返回:字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的 抛出:PatternSyntaxException - 如果正则表达式的语法无效 从以下版本开始:1.4 另请参见:Patternsplitpublic String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。 例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: Regex结果:{ "boo", "and", "foo" }o{ "b", "", ":and:f" }参数:regex - 定界正则表达式 返回:字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的 抛出:PatternSyntaxException - 如果正则表达式的语法无效 从以下版本开始:1.4 另请参见:Pattern