如何使用javascript将以下格式更改为json格式

时间:2016-11-20 18:16:13

标签: javascript json dataformat

我想转换此数据格式:

"color;blue:36 ,red:27"

采用以下JSON格式:

{
  "Record": [
    {
      "type": "color",
      "data": "blue",
      "total": "36"
    },
    {
      "type": "color",
      "data": "red",
      "total": "27"
    }
  ]
}

3 个答案:

答案 0 :(得分:1)

此提案首先按分号拆分字符串以获取type和由' ,'分隔的数据。然后用冒号分割datatotal



var data = 'color;blue:36 ,red:27',
    parts = data.split(';'),
    object = {
        Record: parts[1].split(' ,').map(function (a) {
            var p = a.split(':');
            return { type: parts[0], data: p[0], total: p[1] };
        })
    };

console.log(object);

.as-console-wrapper { max-height: 100% !important; top: 0; }




答案 1 :(得分:1)

很难理解给定输入的确切问题,但这应该足够了:

    var input = "color;blue:36 ,red:27";

    // Reassignment is bad, but will shorten the example
    input = input.split(";");

    var attributeName = input[0];

    // No length validations, also bad
    var attributes = input[1].split(",");

    var results = {"Record": attributes.map(function(a) {
        a = a.split(":");
        return {"type":attributeName,
            "data":a[0].trim(),
            "total": a[1].trim()}
    })};

    console.log(results)

答案 2 :(得分:0)

这是我如何做的

var dataFormat = "color;blue:36 ,red:27"
var splitFormat = dataFormat.split(";");
var type = splitFormat[0];
var colors = splitFormat[1].split(",");
var results = [];
_.each(colors, function(color) {
console.log(color)  
  var obj = {
    "type": type,
    "data": color.split(":")[0],
    "total":color.split(":")[1]
  }
  results.push(obj);
});
var final = {
  "Result": results
};
$("#result").html(JSON.stringify(final));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>