Добавление метки к ответу JSON - PullRequest
0 голосов
/ 04 мая 2011
{title:'Alan', hasChild:true},
{title:'Alice', hasDetail:true},
{title:'Amos'},
{title:'Alonzo'},
{title:'Brad'},
{title:'Brent'},    
{title:'Billy'},    
{title:'Brenda'},   
{title:'Callie'},
{title:'Cassie'},   
{title:'Chris'},

Это мои данные ответов JSON, теперь, как бы я добавил Header label к первым элементам каждого из данных.некоторые вещи, которые любят меня, заставляют меня различать, что это А, это Б.

Измененный ответ должен выглядеть следующим образом.

  {title:'Alan', hasChild:true, header:'A'},
    {title:'Alice', hasDetail:true},{title:'Alexander'},
    {title:'Amos'},
    {title:'Alonzo'},
    {title:'Brad', header:'B'},
    {title:'Brent'},    
    {title:'Billy'},    
    {title:'Brenda'},   
    {title:'Callie', header:'C'},
    {title:'Cassie'},   
    {title:'Chris'}, 

1 Ответ

2 голосов
/ 04 мая 2011

Ваш указанный код / ​​разметка не JSON .(JSON требует, чтобы имена свойств были в двойных кавычках, а строковые литералы были в двойных кавычках.) Это похоже на отрывок из середины литерала массива JavaScript, где каждая запись массива определяется литералами объекта.Например:

var people = [
    {title:'Alan', hasChild:true},
    {title:'Alice', hasDetail:true},
    {title:'Amos'},
    {title:'Alonzo'}
];

Я думаю, что в вашем вопросе вы сделали две вещи между первой и второй версиями:

  1. Вы добавили свойство header к первой записи(«Алан») (и «Брэду» и «Кэлли»).
  2. Вы добавили новую запись «Александр» между «Алисой» и «Амосом».

Если у вас есть ссылка на массив, который определяют эти литералы, вы можете легко добавить свойства (# 1 выше):

people[0].header = 'A';

Это создаст новое свойство header для объекта в позиции0 в массиве.

В JavaScript также есть функция для вставки в массив, называемая splice, которую можно использовать для вставки в массив посередине (# 2выше):

people.splice(2, 0, {title: 'Alexander'});

То есть: начиная с индекса 2 (запись «Amos»), удалите элементы 0, затем вставьте этот.Изменение производится на месте.

Если то, что у вас есть, на самом деле является строкой, содержащей JSON, то добавление к ней - это либо упражнение по разбору и объединению строк, либо вопрос десериализации JSON в объект, добавлениесвойства объекта и повторную сериализацию его в JSON снова.


Вот пример массива выше в допустимой форме JSON:

[
    {"title":"Alan", "hasChild":true},
    {"title":"Alice", "hasDetail":true},
    {"title":"Amos"},
    {"title":"Alonzo"}
]

Вот как это будет выглядетьв файле, хранящемся в формате JSON, или в сети.Если внутри строкового литерала в программном коде, конечно, он должен быть в соответствующей строковой литеральной форме для этого языка с необходимым экранированием - если таковое имеется - для двойных кавычек.Например, этот JSON как строковый литерал JavaScript:

var jsonString = '[' +
    '{"title":"Alan", "hasChild":true},' +
    '{"title":"Alice", "hasDetail":true},' +
    '{"title":"Amos"},' +
    '{"title":"Alonzo"}' +
']';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...