2016-06-16 5 views
1

У меня есть файл в формате JSONКак читать из JSON в определенном месте

"user1": { 
    "body-parser": "^1.12.2", 
    "creditcard-generator": "*" 
} 

"user2": { 
"body-parser": "^1.12.2", 
"creditcard-generator": "*" 
} 

Я пытаюсь читать из этого файла с определенного места. Пока я не могу понять, как это сделать. Скажем, я хочу выбрать учетные данные пользователя только для user2. Как это сделать в javascript? Любые предложения окажут большую помощь.

+0

1. Это не файл JSON. 2. Покажите, что вы пробовали и в какой среде (узел, браузер, что-то еще). –

ответ

0

Ваш файл JSON является invalide,

var text = { 

    "user1": { 
     "body-parser": "^1.12.2", 
     "creditcard-generator": "*" 
    }, 

    "user2": { 
    "body-parser": "^1.12.2", 
    "creditcard-generator": "*" 
    } 
    } 

можно разобрать, как этот

console.log (text.user2);

+0

в порядке, так что теперь, как я его прочитал, скажите, получите значения body-parser и creditcard-generator для user2? –

+0

ответ обновлен. проверить его сейчас –

+0

Я пробовал var fs = require ('fs'); var content = fs.readFileSync ('./ actions/writeTo.json'); var jsonContent = JSON.parse (content); console.log (json.user1); Это не работает. Это ошибка из json-файла Ошибка: Неожиданный токен v SyntaxError: Неожиданный токен v –

1

В дополнение к ответам, предоставленным fljs.

Первое, что ваш json недействителен. Вы должны поместить его в массив и отделить объекты, используя запятую.

var model = { 
    "user1": { 
     "body-parser": "^1.12.2", 
     "creditcard-generator": "*" 
      }, 

    "user2": { 
    "body-parser": "^1.12.2", 
    "creditcard-generator": "*" 
      } 
    } 

Теперь вы хотите, чтобы прочитать эту информацию:

> model["user2"]["creditcard-generator"] 
< "*" 
0

Это довольно прямо вперед. Давайте предположим, что вы получите файл в переменную, как этот

var JSON={"user1": { 
    "body-parser": "^1.12.2", 
    "creditcard-generator": "*" 
}, 

"user2": { 
"body-parser": "^1.12.2", 
"creditcard-generator": "*" 
}} 

В вашем Javascript, используйте оператор точки, чтобы обратиться к конкретному элементу и его детей.

Say, I want to pick user credentials only for user2.

В JavaScript, вы просто написать JSON.user2 и так далее. Самый быстрый способ попробовать это, скопировать и вставить часть var JSON в вашу консоль. И ударил JSON.user2

0

Ваш JSON-объект обычно выглядит следующим образом (обратите внимание, что {} в начале и в конце):

var json = 
{ 
    "user1": { 
     "body-parser": "^1.12.2", 
     "creditcard-generator": "*" 
    }, 
    "user2": { 
     "body-parser": "^1.12.2", 
     "creditcard-generator": "*" 
    } 
} 

Теперь вы можете получить значение user2 по json.user2.

Существуют и другие методы получения данных и вопросов, на которые необходимо ответить: есть ли у вас JSON-объект или JSON-массив? Вы уже разобрали его?

Посмотрите на эту статью: http://www.mkyong.com/javascript/how-to-access-json-object-in-javascript/

Привет, Нико

+0

получил это, я довольно новичок в json. Можете ли вы рассказать мне, как мне получить доступ к этому файлу. Так как в javascript я обычно использую var fs = require ('fs'); var file = './actions/writeTo.json'; , а затем записать его, jsonfile.writeFile (файл, OBJ, функция (ошибка) {...} Similary, как я извлечь файл JSon здесь –

+0

@BishwaroopChakraborty: Если у вас есть json- Файл на вашем сервере можно получить с помощью http-Request, pe с JQuery: '$ .get (" /Actions/writeTo.json ", function (data) {});' Если у вас есть данные, которые вы должны проанализировать он, а затем у вас есть json/js-Object, к которому вы можете получить доступ. – Nico

0

Если вы хотите узел spesific просто получить доступ к нему, как это:

jsonObj["user2"].body-parser; 

Если вы Nees что-то более genreic вы можете использовать это функции:

var x = data.key1.children.key4; 

var path = "data"; 
function search(path, obj, target) { 
    for (var k in obj) { 
     if (obj.hasOwnProperty(k)) 
      if (obj[k] === target) 
       return path + "['" + k + "']" 
      else if (typeof obj[k] === "object") { 
       var result = search(path + "['" + k + "']", obj[k], target); 
       if (result) 
        return result; 
      } 
    } 
    return false; 
} 
//Then for evry node that you need you can call the search() function. 
var path = search(path, data, x); 
console.log(path); //data['key1']['children']['key4'] 

Обратите внимание, что вам сначала нужно исправить ваш JSON, чтобы он был действительной структурой.

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