现有一串字符串
[{"chlobj" :"B-E601"},{"chlobj" :"B-E617"},{"chlobj" :"B-E636"},{"chlobj" :"B-E801"},{"chlobj" :"B-E893"},{"chlobj" :"B-J608"},{"chlobj" :"B-J609"}],怎么处理这串字符串将他变成数组
或者将这串字符串传到前端怎么弄成下拉框的形式,只需要B-E636这些显示,其他不需要]
如果前端有框架,直接用框架里方法绑定,如果没有前台框架,就先将这个json字符串传到前台,然后对应解析json字符串。然后循环进你的下拉框中。
给个例子
一、Java解析Json数据
1、JsonObject
使用JsonObject解析只有一条数据的json是非常方便的例如:"{\"name\":\"zhangsan\",\"password\":\"zhangsan123\",\"email\":\"10371443@qq.com\"}"
public static void main(String[] args) {
String jsonString ="{\"name\":\"zhangsan\",\"password\":\"zhangsan123\",\"email\":\"10371443@qq.com\"}";
JSONObject json = JSONObject.fromObject(jsonString);
User user = new User();
user.setName(json.getString("name"));
user.setPassword(json.getString("password"));
user.setEmail(json.getString("email"));
System.out.println(user.toString());
}
2、JsonArray
使用JsonArray解析数组数据的json是非常方便的例如:"[{\"name\":\"zhangsan\",\"password\":\"zhangsan123\",\"email\":\"10371443@qq.com\"},{\"name\":\"lisi\",\"password\":\"lisi123\",\"email\":\"1435123@qq.com\"}]"
[java] view plain copy
String json = <span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">"[{\"name\":\"zhangsan\",\"password\":\"zhangsan123\",\"email\":\"10371443@qq.com\"},</span><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">{\"name\":\"lisi\",\"password\":\"lisi123\",\"email\":\"1435123@qq.com\"}</span><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">]"</span>;
JSONArray jsonArray = JSONArray.fromObject(json);
ArrayList<User> users = new ArrayList<User>();
for (int i = 0; i < jsonArray.size(); i++) {
User userM = new User();
user.setName(jsonArray.getJSONObject(i).getString("name"));
user.setpassword(jsonArray.getJSONObject(i).getString("password"));
user.setEmail(jsonArray.getJSONObject(i).getString("email"));
users.add(user);
}
for (User user : users) {
System.out.println(user.toString());
}
二、Jsp解析json数据
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>JqueryDemo1</title>
<script src="jquery.js"></script>
<script>
function showData() {
var str='{ "name": "John" }';//json标准格式
var obj = eval('(' + str + ')');
alert( obj.name);
var str2="{ 'name': 'John' }";
var obj2 = eval('(' + str2 + ')');
alert( obj2.name);
var str3='{"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}}';
var obj3 = eval('(' + str3 + ')');
alert( obj3.GetUserPostByIdResult.ID);
var data=" { root: [ {'name':'6200','value':'0'}, {'name':'6101','value':'xa'}, {'name':'6102','value':'beijing'}, {'name':'6103','value':'haerbin'}]}";
var date1=eval('('+data+')');
alert(date1.root[2].name);
var last=JSON.stringify(obj);//将JSON对象转化为JSON字符
alert(last);
}
</script>
</head>
<body>
<input id="Button1" type="button" value="Hit Me" onclick="showData()" />
</body>
</html>
这个字符串是一个json串,而json串在前段本身就可以代表对象(Object),也就是说这个字符串在前段本身就可以代表一个数组,数组中是一个又一个对象,相当于java 中的map字典,或者是对象,对象只有一个属性就是chlobj,其具体做法就是如果用了jQuery,就是$.parse(str),就可以解析为一个前端对象,比如
var str = '[{"chlobj" :"B-E601"},{"chlobj" :"B-E617"},{"chlobj" :"B-E636"},{"chlobj" :"B-E801"},{"chlobj" :"B-E893"},{"chlobj" :"B-J608"},{"chlobj" :"B-J609"}]';
var arr = $.parse(str);
console.log(arr[0].chobj);// 拿到了B-E601
console.log(arr[1].chobj);// 拿到了B-E617
个人猜测你是刚学吧,找本javascript书看看,学会之后再找本jQuery看看,JavaScript学会其实上述问题就解决了,jQuery不过是为了方便
var str = '[{"chlobj" :"B-E601"},{"chlobj" :"B-E617"},{"chlobj" :"B-E636"},{"chlobj" :"B-E801"},{"chlobj" :"B-E893"},{"chlobj" :"B-J608"},{"chlobj" :"B-J609"}]';
var arr = JSON.parse(str);
var select = `<select >
${(function() {
var options = '';
arr.forEach(item=>{
options += `<option value="${item.chlobj}">${item.chlobj}</option>`;
});
return options;
})()}
</select>`;
document.body.innerHTML=select;