私はしばらくの間、次の関数を使用して大成功を収めてきましたが、最近、機能しなくなりました。何も変更していません。同じブラウザー、サーバー、同じ jquery ライブラリ、すべてが同じなので、何が問題なのかわかりません。次の関数は、長い文字列を受け取り、それをオブジェクトに変換します。
$(function()
{
var _sid = getUrlVar('AICC_SID');
var _url = getUrlVar('AICC_URL');
$.get(_url,{command:"GetParam",version:"2.2",session_id:_sid},function(response)
{
var _obj = toJSON(response);
console.log(_obj);
});
});
function toJSON(str)
{
var obj = {};
str.replace(/([^=]+)=(.*)\n/g, function (_, name, value)
{
console.log('name : ' + name);
console.log('value : ' + value);
obj[name] = $.trim(value);
});
return obj;
}
変換された文字列は次のとおりです。
ERROR=0
ERROR_TEXT=Successful
VERSION=2.2
AICC_DATA=[CORE]
STUDENT_ID=0425655
STUDENT_NAME=Doe, John B
SCORE=
TIME=00:00:00
CREDIT=C
LESSON_LOCATION=1_5
LESSON_STATUS=NULL
[Core_Lesson]
[Objectives_Status]
問題は、.replace()
実行されていないように見えることです。このtoJSON()
関数は文字列をオブジェクトに変換しますが、常に空のオブジェクトを返します。うまくいけば、何が問題なのかが明らかになります。