0

アプリを Lasso 8 から Lasso 9 に変換する過程にあり、中間ステップとして、8.5.5 から 8.6.2 にアップグレードしました (これは、異なる仮想ホストで、新しいボックスで 9 と一緒に実行されます)。

8.6.2 では、 を呼び出すページで大量のエラーが発生することがわかりましたencode_json。これらのエラーの奇妙な点は、サイトが開始されてからしばらくたってからエラーが発生し始めることです。その後、数時間後、すべてのencode_json呼び出しが失敗し始め、次のようなエラー メッセージが表示されます。

An error occurred while processing your request.
Error Information

Error Message: No tag, type or constant was defined under the name "〰〲⵽硜㉻紱硜㉻紳尭筸戵屽筸搵⵽硜" with arguments: array: (pair: (-find)=([\x{0020}-\x{21}\x{23}-\x{5b}\x{5d}-\x{10fff}])), (r)
at: onCompare with params: 'r'
at: JSON with params: 'reload', -Options=array: (-Internal)
at: JSON with params: @map: (reload)=(false), (tcstring)=(LZU), (timestring)=(10:42 AM   1442Z)
at: [...].lasso with params: 'pageloadtime'='1383038310' on line: 31 at position: 1
Error Code: -9948

(はい、これらの中国語 (?) 文字はエラー メッセージに含まれています。) LassoStartup から8.5.5 の encode_json タグを削除したので、正しい組み込みメソッドを使用しています。encode_json メソッドは、単純な文字列からマップの配列まで、投げるすべてのパラメーターに対して失敗します。サイトを再起動すると、encode_json は負荷に応じて 1 ~ 2 時間動作を再開します。

8.5.5 では、この問題はありません。誰もこの問題の経験がありますか? 組み込みメソッドをオーバーライドできるかどうかを確認するために8.5.5 タグ スワップ encode_jsonを試すことに関するアドバイスはありますか? 多分それはよりうまくいくでしょうか?

4

4 に答える 4

1

LassoTalkのRickが次の情報を提供してくれました。

こんにちはジャスティン、

8 月に別のスレッドでこの件を思い出さずにはいられませんでした。そのスレッドの最終結果はバグ レポートのようです。

http://lasso.2283332.n4.nabble.com/Encode-JSON-error-td4639201.html

よろしくお願いします。

リック

于 2013-10-30T04:38:06.617 に答える
0

インターネットから見つけて使用した次のコードを試すことができます。

それは私のために働いています。

<?LassoScript
define_tag('jsonHash', -required='input',-type='array',
    -description='Takes a Lasso Array and outputs a json Hash. Lassosoft offers a complex json type but, not needed in this case.
    Outputs name/value pairs.This can and should be moved to a common location with other custom tags.');

    local('ret'='[');
    local('this'=string);
    iterate: #input, local:'x';
        local:'xSize' = #x->size;
        #this += '{';
        iterate: #x, local:'i';
            #this += '"' + #i->first + '":"' + decode_html(#i->second) + '"';
            if: #xSize != loop_count;
                #this += ",";
            /if;
        /iterate;
        #this += '}';
        if(#input->size != loop_count);
            #this += ',';
        /if;
    /iterate;

    #ret += #this + ']';
    return(#ret);
/define_tag;

encode_json("Arguement");
?>

お役に立てば幸いです。

ありがとう

于 2013-12-11T06:58:41.223 に答える