繁体   English   中英

如何从字符串中获取键和值

[英]how to get key and value from string

这是一个像这样的字符串:

var data =  {ListofLayers: "[{"Key":"G1","Value":"park"}]"}

我使用以下代码获取键和值:

var JSONObject = JSON.parse(JSON.stringify(data));
var obj = JSON.parse(Object.values(JSONObject));

$.each(obj, function (key, value) {
     $.each(value, function (key, value) {
        console.log(key + ':' + value);
     });
});

但它返回

Key:G1
Value:park

但我期望G1:park

怎么了?

  var data = {ListofLayers: '[{"Key":"G1","Value":"park"}]'}; var JSONObject = JSON.parse(JSON.stringify(data)); var obj = JSON.parse(Object.values(JSONObject)); $.each(obj, function (key, value) { $.each(value, function (key, value) { console.log(key + ':' + value); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

参见工作演示:

 var data = {ListofLayers:[{"Key":"G1","Value":"park"}]} $(document).ready(function(){ $.each(data.ListofLayers, function (key, value) { console.log(value.Key+":"+value.Value); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

检查此-https://jsfiddle.net/6rLsw56n/

var data =  {ListofLayers: '[{"Key":"G1","Value":"park"}]'};
var JSONObject = JSON.parse(JSON.stringify(data));
var obj = JSON.parse(Object.values(JSONObject));

$.each(obj, function (key, value) {
    var s = '';
    $.each(value, function (key, value) {
        s += (s == '' ? value : (':' + value));       
    });
    console.log(s);
});

Ypu真的不需要each第二个。 您可以访问json属性作为value["Key"]value.Key

 var JSONObject = { ListofLayers: '[{"Key":"G1","Value":"park"}]' }; var obj = JSON.parse(Object.values(JSONObject)); $.each(obj, function(key, value) { console.log(value["Key"] + ":" + value["Value"]); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

您可以使用javascript ES6执行以下操作。

 var data = {ListofLayers: [{"Key":"G1","Value":"park"}]}; var JSONObject = JSON.parse(JSON.stringify(data)); var result ={}; for(let keys of JSONObject.ListofLayers) { result = {[keys.Key]: keys.Value}; } console.log(result); 

正如Rajesh在Dhruvin的答案中建议的那样,以下方法将起作用。

 var data = {ListofLayers: '[{"Key":"G1","Value":"park"}]'} var result = Object.values(JSON.parse(data.ListofLayers)[0]).join(":") console.log(result); 

您可以使用Object.values来获取ListofLayers数组内JSON对象的键的值。 然后,这将返回一个数组,您可以像这样使用冒号(:)加入该数组,

 var data = {ListofLayers:[{"Key":"G1","Value":"park"}]} $(document).ready(function(){ $.each(data.ListofLayers, function (key, value) { console.log(Object.values(value).join(':')); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM