Я создал объект JS вроде этого:Добавление элемента в объект Javascript не работает, используя формат JSON
var JSONObject = {};
и функцию а создать элемент добавляет, что JSONObject
:
function addShape(JSONObject, shapeStruct)
{
var sh = "shape"+shapeStruct.id.toString();
JSONObject.sh={
"id": shapeStruct.id,
"x1": shapeStruct.x1,
"x2": shapeStruct.x2,
"y1": shapeStruct.y1,
"y2": shapeStruct.y2
};
}
эта функция находится в отдельном файле.
называть его я использовал:
shapeId++;
singleShapeStruct = {"id":shapeId, "x1":oldX, "x2":correctedX, "y1":oldY, "y2":yCanvas};
addShape(JSONObject, singleShapeStruct);
alert(JSONObject.shape0.x1);
предупреждение не дает каких-либо вещь.
спасибо за любую помощь kinf
FYI, нет ничего в вашем вопросе или коде, который имеет какое-либо отношение к JSON. '{}' - это * object literal * здесь, который представляет собой конструкцию синтаксиса для указания объекта. OTOH, JSON - это текстовый формат обмена данными, такой как XML или CSV. См. Alse: [Нет такой вещи, как «объект JSON»] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/). –
@FelixKling я действительно запутался между концепцией JSON и объектами JS, спасибо, но можем ли мы сказать, что спецификация JSON. требует объект JS, когда он используется в контексте строки? –
Я не уверен, что вы имеете в виду, но я добавлю еще несколько объяснений: если у вас есть текстовый файл, содержащий только, например. '[" foo "," bar "]', тогда у вас есть JSON. Если файл содержит 'var foo = [" foo "," bar "];', то у вас есть JavaScript, создающий массив. Если у вас есть 'var foo = '[" foo "," bar "]';', то у вас есть JavaScript, создающий строку, которая содержит данные в формате JSON. В исходном коде JavaScript JSON может существовать только внутри строк. Вы можете анализировать такие данные для объектов JS и массивов. –