在JSON字符串中提取和格式化值

时间:2014-07-08 20:12:51

标签: javascript json

我刚开始使用JSON字符串。我有一个包含json字符串的json字符串数组,如

  

{“ID”:“3”,“LinkFilename”:“Test.txt”,“Sender”:“abc @ hotmail.com”,“Created”:“2014-07-07T20:13:18.000Z” }

我想要做的是更改“已创建”键的值(这是一个日期)并省略其时间部分,因此它必须仅显示日期部分。我想生产类似的东西:

  

{“ID”:“3”,“LinkFilename”:“Test.txt”,“发件人”:“abc @ hotmail.com”,“已创建”:“2014-07-07”}

生成Json的代码如下:

 var ItemsEntries = [];
 var listItemInfo = '';
        var itemsCount = this.collListItem.get_count();
        for (i = 0; i < itemsCount; i++) {
            var item = this.collListItem.itemAt(i);
            var ItemEntry = JSON.stringify(item.get_fieldValues());
            ItemsEntries.push(ItemEntry);
             listItemInfo += ItemsEntries[i].toString(); + '\n';
        }

请指导我。

1 个答案:

答案 0 :(得分:1)

如果你有Javascript对象:

var item = {
  "ID":"3", 
  "LinkFilename":"Test.txt", 
  "Sender":"abc@hotmail.com", 
  "Created":"2014-07-07T20:13:18.000Z"
}

并且您希望以您描述的方式更改Created字段,您可以先从Date字段值中创建一个新的Created对象,然后只提取您关注的部分关于Date API(http://www.w3schools.com/jsref/jsref_obj_date.asp)中包含的功能。

此代码应该能够将obj更改为您需要的格式:

var formatItem = function(item){
  var date = new Date(item["Created"]);
  var formattedDate = date.getFullYear() 
                    + '-'
                    + date.getMonth() + 1 // zero-based index...
                    + '-'
                    + date.getDate();
  item["Created"] = formattedDate;
};

有一点需要注意的是,如果这个月是单个数字,则该月份不会被填0,但这很容易根据具体情况进行修复。