[英]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.