#json #minecraft
#json #Minecraft
Вопрос:
Мне нужно установить переменную DisplayName, но я понятия не имею, как к ней добраться. Для контекста я создаю приложение на C #, чтобы установить для этой переменной значение чего-то другого. Родительские переменные для DisplayName различаются в зависимости от пользователя, который использует это приложение.
Я размыл их, чтобы не раскрывать свою личную информацию.
Я думаю, что мне может понадобиться перебирать дочерние объекты JSON, но я не уверен.
Ответ №1:
Эй, значит, вы правы, вам придется перебирать объект и выполнять поиск, чтобы найти отображаемое имя.
Я написал небольшую функцию ниже, которая будет рекурсивно проходить по объекту и искать displayName
. Очевидно, что это сложно, если вы никогда не знаете местоположение или путь, поэтому у вас должен быть довольно открытый способ поиска объекта JSON.
Если вы можете контролировать способ запроса данных, возможно, вы могли бы изменить формат, чтобы структура данных была более последовательной, но я действительно ничего не знаю о том, откуда вы получаете данные.
Это всего лишь один из многих способов сделать это.
const obj = {
authenticationDatabase : {
accessToken: 'Mock',
profiles: {
displayName: 'THIS IS A MOCK USER NAME'
},
properties: [],
username: 'MOCK'
}
}
const obj2 = {
authenticationDatabase : {
accessToken: 'Mock',
profiles: {
deep: {
nested: {
object: {
displayName: 'THIS IS A MOCK USER NAME'
}
}
}
},
properties: [],
username: 'MOCK'
}
}
const findDisplayName = obj => {
if(!obj || typeof(obj) != 'object'){
return false;
}
if(Object.keys(obj).includes("displayName")){
return obj["displayName"]
}
for(const key in obj){
if(findDisplayName(obj[key])){
return findDisplayName(obj[key])
}
}
return false;
}
console.log(findDisplayName(obj))
console.log(findDisplayName(obj2))