2014-11-12 2 views
2

Я очень новичок в d3. У меня 3-дневное знание d3. Я пытался создать один макет пакета, но я не могу вызвать функцию translate (of transform) на основе данных во внешнем json-файле. Мой json-файл не отформатирован как имя, порядок детей (который использовался в большинстве примеров). Итак, может ли кто-нибудь пояснить, должен ли мы иметь json-файл в надлежащем формате, например, в древовидной структуре, чтобы получить правильный макет пакета или дерева. Мой формат JSON файл:Json format issue in d3 pack layout

{ 
    "sourcefile":"Script", 
    "structure":{ 
     "Links":[ 
     [ 
      "step1", 
      "port1", 
      "step2", 
      "port2" 
     ], 
     [ 
      "step3", 
      "port3", 
      "step4", 
      "port4" 
     ] 
     ], 
     "device":{ 
     "step1":{ 
      "args":{ 
       "pin":[ 
        "XXXX", 
        100 
       ] 
      }, 
      "device_type":"console" 
     }, 
     "lock":{ 
      "args":{ 
       "username":[ 
        "XXXX", 
        "test" 
       ], 
       "address":[ 
        "XXXX", 
        "10.0.0.1" 
       ] 
      }, 
      "device_type":"Light" 
     } 
     } 
    } 
} 

Это это true..I было интересно, если кто-нибудь может сказать мне о некоторых онлайн-инструмент для форматирования этого JSon файл в формате ..

 { 
      "name": "Names", 
      "children": 
       [ 
        { "name": "John", "size": 100 } 
       ] 
     } 
+0

Является ли онлайн-инструмент или нет, меня тоже будет интересовать ответ. – Maggie

ответ

1

Ваша интуиция верно. Для компоновки пакетов требуются входные данные, отформатированные как hierachy. Кажется маловероятным, что онлайн-инструмент для преобразования общих данных JSON в эту структуру будет существовать, так как такой инструмент почти должен быть построен по индивидуальному заказу для каждого конкретного набора данных. Однако сам d3 имеет функции утилиты, которые помогут вам создать требуемую структуру. Я имею в виду утилиты Nest. Глядя на ваши входные данные, совершенно неясно, как структурировать их в иерархии, поэтому я не могу предлагать какие-либо конкретные предложения по реализации. В общем, я бы предложил преобразовать ваши данные в простой массив объектов, а затем использовать утилиты d3.nest для извлечения иерархии из данных.