【问题标题】:extract and format value in JSON string在 JSON 字符串中提取和格式化值
【发布时间】:2014-07-08 20:12:50
【问题描述】:

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

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

我想要做的是改变“Created”键(这是一个日期)的值并省略它的时间部分,所以它必须只显示日期部分。我想制作类似的东西:

{"ID":"3", "LinkFilename":"Test.txt", "Sender":"abc@hotmail.com", "Created":"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';
        }

请指导我完成这个。

【问题讨论】:

标签: javascript json


【解决方案1】:

如果你有 Javascript 对象:

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

并且您想以您描述的方式更改Created字段,您可以首先从Created字段值中创建一个新的Date对象,然后使用包含的函数提取您关心的部分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,但这很容易根据具体情况进行修复。

【讨论】:

  • 一旦获得“created”字段,就不能使用 substr() 来获取所需的字符串吗??
  • @MuhammadMuradHaider 当然,您可以将item["Created"] 设置为item["Created"].substr(0, 10)。我更喜欢我出于表面原因采取的方法(例如,它不适用于超过 10,000 年的日期!)但子字符串的东西应该适用于所有合理的输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 2021-08-03
  • 1970-01-01
  • 2017-01-10
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多