0

入力フィールドの値を既存の JSON オブジェクトに追加しようとしていますが、エラーが発生し続けます。

これが私のコードです:

$('#addObjectBtn').click(function() {
            //Inject Property into current object
            var newObjName = $('#newObjectName').val();
            var newObjType = $('#newObjectType').val();
            objStr.View[newObjType + "_100"] = {"BackgroundImage":'""' + newObjName + '""'};
            $('#newObjectPrompt').dialog('close');
        })

編集: JSON オブジェクトを追加します。たとえば、別のボタンを追加しようとしています。私の例では「Button_100」になります

{
    "View": {
        "Name": "Untitled3",
        "ImportWidth": 320,
        "ImportHeight": 480,
        "Image_1": {
            "BackgroundImage": "Image.png",
            "Position": [0, 0],
            "Width": 320,
            "Height": 480
        },
        "Button_1": {
            "BackgroundImage": "ButtonTop.png",
            "Position": [61, 83],
            "Width": 217,
            "Height": 58
        },
        "Button_2": {
            "BackgroundImage": "ButtonBottom.png",
            "Position": [81, 114],
            "Width": 205,
            "Height": 73
        },
        "TextField_1": {
            "BackgroundImage": "TextFieldLogin.png",
            "Position": [102, 336],
            "Width": 189,
            "Height": 31
        },
        "Label_1": {
            "Position": [137, 100],
            "Width": 54,
            "Height": 20,
            "Text": "HiRob",
            "FontSize": 18,
            "Color": [0, 0, 0, 1]
        },
        "Label_2": {
            "Position": [43, 342],
            "Width": 72,
            "Height": 20,
            "Text": "LogOut:",
            "FontSize": 18,
            "Color": [0, 0, 0, 1]
        },
        "Label_3": {
            "Position": [115, 234],
            "Width": 126,
            "Height": 20,
            "Text": "AnotherButton",
            "FontSize": 18,
            "Color": [0, 0, 0, 1]
        }
    }
}
4

3 に答える 3

5

newObjTypeはすでに文字列であるため、これらすべての引用符は必要ありません。このようにしてみてください:

objStr.View[newObjName + "_100"] = {BackgroundImage: newObjType};
于 2013-01-20T17:43:11.943 に答える
3

試す

objStr.View[newObjName + "_100"] = JQuery.phraseJSON('{"BackgroundImage":"' + newObjType +'"}');

phraseJSON を使用するのはちょっと面倒ですが、JSON 文字列を JS オブジェクトに変換することで、確実に仕事を終わらせることができます。

編集: newObjType は既に文字列です

あるいは、JQuery なしで JSON.parse(string) を使用できます。

于 2013-01-20T18:47:02.350 に答える
1

更新

モバイルにデバッグ ツールがない場合は、WEINREをお勧めします。モバイルで実行されているアプリケーションのデスクトップに同じコンソールとその他のものを提供します

また、あなたのコメントを見ると、エラーは別の場所にあるようです。オプションで、この割り当て方法を試すことができます

var newObjName = $('#newObjectName').val();
var newObjType = $('#newObjectType').val();
var tempObj = {"BackgroundImage": newObjName };
objStr.View[newObjType + "_100"] = tempObj;

古い回答:

私は エラー SyntaxError: Unexpected token :
{"BackgroundImage":'""' + newObjName + '""'};

修正として、2つの変更を行う必要があると思います

コードを次から変更します。

{"BackgroundImage":'""' + newObjName + '""'}

{ BackgroundImage : newObjName }

かっこいいですね??

于 2013-01-20T18:26:15.437 に答える