将一串字符串处理成集合的形式

现有一串字符串
[{"chlobj" :"B-E601"},{"chlobj" :"B-E617"},{"chlobj" :"B-E636"},{"chlobj" :"B-E801"},{"chlobj" :"B-E893"},{"chlobj" :"B-J608"},{"chlobj" :"B-J609"}],怎么处理这串字符串将他变成数组
或者将这串字符串传到前端怎么弄成下拉框的形式,只需要B-E636这些显示,其他不需要]

3个回答

如果前端有框架,直接用框架里方法绑定,如果没有前台框架,就先将这个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>
Muroker
Muroker 学习了!!
接近 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 建议采纳
接近 2 年之前 回复
qq_23126581
渊渟无迹静涛君 你找二、Jsp解析json数据 里列子
接近 2 年之前 回复

这个字符串是一个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不过是为了方便

Muroker
Muroker 谢谢了
接近 2 年之前 回复
Muroker
Muroker 你这个控制台输出的是未定义呀~
接近 2 年之前 回复
 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;
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问