Мне нужно извлечь данные из базы данных MSACCES в объект JSON... Поэтому я не совсем уверен в правильном синтаксисе строки JSON. Какой из них правильный:
{
"Continent": {
"Europe": {
"Countries":
{
"The Netherlands": {
"Cities": [
"Rotterdam",
"Hag",
"Amsterdam"
]
}
},
{
"Germany": {
"Cities": [
"Bon",
"Berlin"
]
}
}
}
}
}
Или этот:
{
"Continent": {
"Europe": {
"Countries": [
{
"The Netherlands": {
"Cities": [
"Rotterdam",
"Hag",
"Amsterdam"
]
}
},
{
"Germany": {
"Cities": [
"Bon",
"Berlin"
]
}
}
]
}
}
}
Интересно, между {"Страны":[{"Сеть... или {"Страны":{"Сеть..
На самом деле существует множество веб-сайтов с валидаторами/линтерами json.
Какой язык вы используете для создания JSON? Если это не какая-то непонятная функциональность MS Access, есть вероятность, что он либо изначально поддерживает JSON, либо для него существует библиотека/модуль для работы с JSON. Не генерируйте JSON путем конкатенации строк. Это не просто, и есть много угловых случаев.
Сначала я создаю некоторый объект (словарь, массив или коллекцию), а затем анализирую с помощью библиотеки JSON Converter... VBA изначально не поддерживает JSON. И это меня немного смущает, так как я только начал иметь дело с JSON... Поэтому я хочу уточнить некоторые неизвестные @axiac
Continent
и т. д.), а затем передать его JsonConverter.ConvertToJson()
для создания из него JSON.
Пример кода в документации VBA-JSON вводит в заблуждение. Dim Json As Object — это не JSON, это объект. Это распространенная путаница между JSON и объектом, используемым для создания JSON (или декодированным из JSON), который делают многие разработчики. Измените это на Dim obj as Object, и все станет более ясным.
Надеюсь, вы не сгенерировали первый пример из своего вопроса, используя VBA-JSON. Это недопустимый JSON, поэтому его нельзя проанализировать.
Нет, я не генерировал с помощью VBA JSON, просто я написал в качестве примера, ища результат, который я должен получить в и. Поэтому мне нужно было лучше понять, что именно я должен делать, и я использовал этот пример со странами, чтобы быть более понятным @axiac
Поскольку у вас есть массив Country[], я бы посоветовал вам переименовать ключ Country на Countries:
Countries: [{}, {}]
Да, @devpolo, у меня есть массив Country, поэтому второй должен быть правильным...
ИМХО, лучший способ сохранить отношения
{
"Continens": {
"Continent": "Europe",
"Countries": [
{
"Country": "The Netherlands",
"Cities": [
"Rotterdam",
"Hag",
"Amsterdam"
]
},
{
"Country": "Germany",
"Cities": [
"Bon",
"Berlin"
]
}
]
}
}
Занятия (перевести на ваш язык)
public class World
{
public Continens Continens { get; set; }
}
public class Continens
{
public string Continent { get; set; }
public List<Country> Countries { get; set; }
}
public class Country
{
public string Country { get; set; }
public List<string> Cities { get; set; }
}
Все, что вам нужно сделать, это использовать любой язык программирования и попробовать его проанализировать. Если он недействителен, будет ошибка. И действительно, один из двух недействителен.