我有一个如下所示的字符串。
Model [Name=Mobie , location= US, actualTransferDate=null, scanserialCode=234335,1237787, modelNum=MIC 898989 ]
我可以将此转换为Json吗?有可能吗?所以我在下面做了这样的事情,但现在还没有用。
List<String> invoicelist = Arrays.asList(checkeditems);
String invocejson = new Gson().toJson(invoicelist);
Map<String,String> map = new HashMap<String,String>();
ObjectMapper mapper = new ObjectMapper();
try {
map = mapper.readValue(invocejson, new TypeReference<HashMap<String, String>>(){});
log.info("****"+map);
} catch (Exception e) {
e.printStackTrace();
}
如果我可以转换它,我可以很容易地将json传递给Jsp,然后在那里使用它。任何人都可以帮我这个吗?
答案 0 :(得分:1)
你可以这样做......
//import org.json.simple.JSONObject;
JSONObject object = new JSONObject();
ArrayList<Integer> array = new ArrayList<Integer>();
String model = "Model [Name=Mobie , location= US , actualTransferDate=null , scanserialCode=234335,1237787 , modelNum=MIC 898989 ]";
String[] v = model.substring(5).replace("[" , "").replace("]" , "").split(" ,");
for(int i = 0;i < v.length;i++){
String[] j = v[i].split("=");
switch (j[0]) {
case " Name":
object.put("Name",j[1]);
break;
case " location":
object.put("location", "US");
break;
case " actualTransferDate":
object.put("actualTransferDate",j[1]);
break;
case " scanserialCode":
String[] l = j[1].split(",");
array.add(Integer.parseInt(l[0]));
array.add(Integer.parseInt(l[1]));
object.put("scanserialCode", array);
break;
case " modelNum":
object.put("modelNum",j[1]);
break;
default:
break;
}
}
System.out.print("JSON Output string : "+object);
}
输出:
JSON输出字符串: {&#34;名称&#34;:&#34; Mobie&#34;&#34; actualTransferDate&#34;:&#34;空&#34;&#34;位置&#34;:&#34; US&#34;&#34; modelNum&#34;:&#34; MIC 898989&#34;,&#34; scanserialCode&#34;:[234335,1237787]}