2015-01-11 2 views
-5

Как вставить некоторые данные в JSON?Как вставить в JSON?

Мне нужно создать файл JSON через скрипт. Файл JSON должен выглядеть следующим образом:

{ 
    "index": { 
     "colors": [ 
      { 
       "title": "great color", 
       "name": "nice color" 
      }, 
      { 
       "title": "worst color", 
       "name": "bad color" 
      } 
     ] 
    } 
} 

в моем файле JavaScript я Амабль нажать на массив цветов:

var index = {index: {}}; 
var posts = {colors: []}; 
var single = {title: "great color", name: "nice color"}; 

posts.colors.push(single); 

однако, как я вставить его в объект индекса? я пишу в файл JSON в данный момент нравится:

fs.writeFile(file, JSON.stringify(posts, null, 2)); 

но пишет только массив цветов, а результирующий файл в формате JSON как это:

{ 
    "colors": [ 
     { 
      "title": "great color", 
      "name": "nice color" 
     }, 
     { 
      "title": "worst color", 
      "name": "bad color" 
     } 
    ] 
} 

, как я могу создать структуру JSON, что мне нужно?

+1

Пожалуйста, внесите свой код ** здесь **. Вы действительно требуете от нас открыть три разных страницы, чтобы понять, о чем вы говорите ?! – deceze

+0

извините, я не понял, что могу просто вставить все это здесь! Tyr ответил мне хорошо, спасибо – user973612

ответ

-1

Вы можете добавить массив цвета в объект индекса:

var obj = {}; // basic object 

obj['index'] = {}; // The index child object 
obj.index['colors'] = new Array(); // the color array below index 

var single = {title: "great color", name: "nice color"}; 
obj.index.colors.push(single); 
+1

Так как я не могу написать свой собственный ответ, потому что вопрос приостановлен, я расскажу ему здесь. Это было бы гораздо более кратким: http://jsfiddle.net/k8jqpkrb/ –

+0

, который работал красиво, спасибо. – user973612

0

Теперь, когда я могу написать мой собственный ответ, попробуйте вместо этого:

var obj = { 
     index: { 
      colors: [] 
     } 
    }, // basic object 
    single = { 
     title: "great color", 
     name: "nice color" 
    }; 

obj.index.colors.push(single); 

// ... 

fs.writeFile(file, JSON.stringify(obj, null, 2)); 

Я не знаю, почему вам нужно чтобы сделать объекты по отдельности, но я просто предположил, что вы добавляли индексы для цветов в другом месте, поэтому я оставил их отдельно. Это просто менее подробно.

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