Object Obect数组Json.stringify字符串数组

时间:2014-07-30 16:28:53

标签: javascript arrays sha

我有一个使用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);

    },

3 个答案:

答案 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'