我有一个使用JSON.stringify()
的对象对象数组,我现在可以看到我的数组中的内容,但是当我arr[0]
等时,它只输出一个字母。
arr = {"hello":"yes","because":"no"}
arr[0] =h
我希望它输出整个值而不仅仅是第一个字母
我的代码
var clientContext = SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
// Get user properties for the target user.
// To get the PersonProperties object for the current user, use the
// getMyProperties method.
MyProperties = peopleManager.getMyProperties();
// Load the PersonProperties object and send the request.
clientContext.load(MyProperties);
clientContext.executeQueryAsync(getMyNewsChoicesSuccess, getMyNewsChoicesFail);
},
getMyNewsChoicesSuccess = function () {
//get the news choice by actually fieldname
var MyChoices = JSON.stringify(MyProperties.get_userProfileProperties().Value);
$('#NBStest').text(MyChoices);
},
答案 0 :(得分:0)
它不再是一个数组,它是一个字符串。 arr [0]将返回第一个字母。
如果你想从中获取对象,你需要解析它(尝试JSON.parse)
答案 1 :(得分:0)
JSON.stringify()
完全听起来像它。它将javascript对象转换为字符串。因此,当您执行arr[0]
时,您将获得字符串中的第一个字母。如果要获取实际值,则需要将其重新转换为javascript对象。
答案 2 :(得分:0)
你可以像这样从你的json字符串中获取第一个元素
JSON.parse(json_str)[0]
但是在你的例子中,第一个元素是"是"它的索引是"你好" ,这意味着您无法通过索引0获取第一个元素,但是您可以通过其属性名称来获取它
arr.hello = "yes";
// or
arr['hello'] = "yes";
如果你想得到hello这是关键,你必须使用这个循环
for (key in arr)
console.log(key);
// it will print 'hello' and then 'because'