2013-07-01 2 views
2

Я создаю github-gist используя javascript/ajax.using переменная на левой стороне синтаксиса json

Я хочу указать свое имя файла. Ниже приведены данные, которые находятся в json.

var data = { 
    "description": gist_description, 
    "public": true, 
    "files": { 
    "file.txt" : { 
     "content": gist_content 
    } 
    } 
}; 

Я написал var gist_filename = "main.txt";

Я заменил «file.txt» на мое имя переменной i.e gist_filename: {«content»: ......}; Но на самом деле суть создается с именем gist_filename вместо фактического имени в переменной, т.е. main.txt

назначение Хотя на правой стороне, в течение, например, «содержание»: gist_content дает мне право контента, хранящегося в переменной имя gist_content.

Любые возможные предложения. Не знаю много json. Спасибо!

+0

Вы не можете сделать это. Это не было бы JSON. Битом 'var data = {..' является JavaScript (JSON является подмножеством синтаксиса литералов объекта JavaScript). Во всяком случае, я говорю: этот вопрос имеет мало смысла, как написано. Больше контекста может помочь. – user2246674

+0

Возможный дубликат [jQuery + JSON, как определить ключ из переменной] (http://stackoverflow.com/questions/10055919/jquery-json-how-to-define-key-from-variable) –

+0

вместо файла. txt "Я просто хочу, чтобы моя переменная работала там – softvar

ответ

2

См. this answer, вам необходимо сначала создать объект, а затем назначить ключ переменной с помощью синтаксиса my_obj[x] = y.

Ваша ситуация

var gist_description = "desc...", 
    gist_content = "content..."; 
var data = { 
    "description": gist_description, 
    "public": true, 
    "files": { 
    } 
} 
var filename = "myfile.txt"; 
data["files"][filename] = { 
    "content": gist_content 
} 
+0

Я пробовал как' var gname = {}; gname [gist_filename] = gist_filename ', а затем поместите 'gname: {" contents ": gist_content}'. Это не сработало – softvar

+0

Voila! Оно работает. Ты просто классный. – softvar

+0

Hah, в любое время :) - пожалуйста, вы могли бы выбрать его как правильный ответ? –

Смежные вопросы