如何解析这种自制的基于字符串的数据格式?

How can I parse this home-made string-based data format?

本文关键字:数据格式 字符串 何解析      更新时间:2023-09-26

我需要遍历id和标签的数据集。我写对了一部分代码,但我需要一些帮助。

// 1. String
var string = '1:answer1,2:answer2,3:answer3,4:answer4,5:answer5,'
// 2. Split to array 
var string = string.split(",");
// 3. EACH 
$.each(string, function(key, val) {
    var answer = answer.split(":");
    $.each(answer, function(key1, val1) {
       // output textfield with id of key1 and value of val1 
    });
});

我可以遍历第一组数据,用逗号分隔,但不能遍历下一组(:)。我怎么做呢?

$.each(string, function(key, val) {
        var answer = val.split(":");
        key1 = answer[0];
        val1 =  answer[1];
        alert(key1+"--"+val1);
    });

应该是var answer= val.split(":");而不是var answer = answer.split(":");

您可以使用String。替换为迭代器:

var string = '1:answer1,2:answer2,3:answer3,4:answer4,5:answer5,'
var html = []
string.replace(/([^:]+):([^,]+)(,|$)/g, function(_, key, val) {
     html.push("<input name='" + key + "' value='" + val + "'>")
});
alert(html.join("'n"))

当然不是针对您自制的字符串,但是您是否考虑过使用JSON将数据封装在字符串中?虽然JSON是通用的,但它可能是JavaScript的完美匹配。

所以,如果你将你的数据编码如下,它真的是一块蛋糕解析:

var data = [
    {
        "id": 1,
        "answerswer": "answerswer1"
    },
    {
        "id": 2,
        "name": "answerswer2.. etc."
    }
];

现在你可以很容易地访问你的数据使用数组和属性符号:

alert (data[0].answer);

Update:所以如果你很幸运,你的Rails应用程序是3.1版本,那么添加对JSON的支持真的是小菜一碟:

对于基本的JSON支持,你唯一需要做的就是:
# GET /answers/1
# GET /answers/1.json
def show
  @answer = Answer.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.json do
        render json: @answer
    end
  end
end