2015-07-07 5 views
0

Я перемещаю листок персонажа моего днда из excel в json. Я хотел бы сохранить свои файлы «маленькими».Как разбить мой json-файл?

Например:

Могу ли я написать этот JSON:

character.json

"{ 
    "title":"Main", 
    "header":{ 
     "name":"", 
     "player":"", 
     "classes":[ 
      { 
       "name":"", 
       "level":0 
      } 
     ], 
     "level":"", 
     "speed":0 
    }, 
    "abilities":{ 
     "ability":{ 
      "name":"", 
      "permanent":{ 
       "score":"", 
       "modifier":"" 
      }, 
      "temporary":{ 
       "score":"", 
       "modifier":"" 
      } 
     } 
    }, 
    "damageReduction":0, 
    "hitPoint":{ 
     "total":0, 
     "current":0 
    }, 
    "initiative":0 
}" 

как:

character.json

"{ 
    "title":"Main", 
    "header": header.json, // or anything working I don't mind 
    "abilities":{ 
     "ability":{ 
      "name":"", 
      "permanent":{ 
       "score":"", 
       "modifier":"" 
      }, 
      "temporary":{ 
       "score":"", 
       "modifier":"" 
      } 
     } 
    }, 
    "damageReduction":0, 
    "hitPoint":{ 
     "total":0, 
     "current":0 
    }, 
    "initiative":0 
}" 

header.json

{ 
    "name":"", 
    "player":"", 
    "classes":[ 
     { 
      "name":"", 
      "level":0 
     } 
    ], 
    "level":"", 
    "speed":0 
} 

Я пробую «json link» и некоторые другие ключевые слова в Google, но я не нашел ничего связанного. (Я обнаружил json-ld и это очень хорошо, но не по теме :))

Edit:

Если вы думаете, что я должен переместить мой вопрос где-то в SE (programmers?), пожалуйста, арг об этом на commnent.

+0

Почему? Почему важно иметь «маленькие» файлы? Сила JSON заключается в том, что вы можете инкапсулировать информацию об одном объекте. Также: Какой язык и что вы пробовали до сих пор? – Sobrique

+0

> Почему важно иметь «маленькие» файлы? Мне легче читать и манипулировать. > Какой язык, json? Я не уверен, что правильно вас понимаю. > и что вы пробовали? Заглядывая в спецификацию json и материалы google, чтобы найти способ достичь этого. – aloisdg

+0

JSON - это не язык, а электронная таблица. Отдельные файлы в порядке, но вам придется снова объединить их. – Sobrique

ответ

0

ОК, я начну с вопроса, что вы пытаетесь выполнить. Почему вы пытаетесь разделить один логический объект на отдельные элементы?

Но поскольку JSON - это вложенная структура данных, вы можете, конечно, разделить ее, как хотите. Например. если вы хотите выделить свой «заголовок»:

#!/usr/bin/perl 

use strict; 
use warnings; 
use JSON; 
use Data::Dumper; 

my $json_str = '{ 
    "title":"Main", 
    "header":{ 
     "name":"", 
     "player":"", 
     "classes":[ 
      { 
       "name":"", 
       "level":0 
      } 
     ], 
     "level":"", 
     "speed":0 
    }, 
    "abilities":{ 
     "ability":{ 
      "name":"", 
      "permanent":{ 
       "score":"", 
       "modifier":"" 
      }, 
      "temporary":{ 
       "score":"", 
       "modifier":"" 
      } 
     } 
    }, 
    "damageReduction":0, 
    "hitPoint":{ 
     "total":0, 
     "current":0 
    }, 
    "initiative":0 
}'; 

my $json = decode_json($json_str); 

## split out the 'header' element: 
my $header_str = to_json($json->{header}, { pretty => 1 }); 
print "HEADER:\n"; 
print $header_str; 

## insert a filename into the 'main' element: 
delete($json->{header}); 
$json->{header} = "somefile.json"; 

print "REST:\n"; 
my $rest_of_json = to_json($json, { pretty => 1 }); 
print $rest_of_json; 
+0

Спасибо, что нашли время ответить. Я хочу разбить его, чтобы упростить издание. Мы - группа программистов, которые любят DnD, и мы начнем редактировать ее вручную. (Пока один из нас не напишет сценарий для его редактирования). Если вы хотите узнать больше о теме, проверьте это [репо] (https://github.com/Dall0o/DnDCharacterJSON/). В принципе, я хочу связать 'Skills.json' с' Character.json'. На данный момент я хочу остаться агностиком. – aloisdg

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