Otamajakushi 1.2.0

Install-Package Otamajakushi -Version 1.2.0
dotnet add package Otamajakushi --version 1.2.0
<PackageReference Include="Otamajakushi" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Otamajakushi --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Otamajakushi, 1.2.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Otamajakushi as a Cake Addin
#addin nuget:?package=Otamajakushi&version=1.2.0

// Install Otamajakushi as a Cake Tool
#tool nuget:?package=Otamajakushi&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Otamajakushi

GitHub Nuget Nuget

Otamajakushiは、OTM-JSON(OneToMany-JSON)を解析するライブラリです。

サンプルプログラム

OTM-JSONファイルの読み込み

using System.IO;
using Otamajakushi;

namespace ConsoleApp
{
    public class ConsoleApp
    {
        public void Program()
        {
            var json = File.ReadAllText(@"input.json");
            var dictionary = OneToManyJsonSerializer.Deserialize(json);
        }
    }
}

OTM-JSONファイルの書き込み

using System.IO;
using System.Text.Encodings.Web;
using System.Text.Unicode;
using Otamajakushi;

namespace ConsoleApp
{
    public class ConsoleApp
    {
        public void Program()
        {
            var dictionary = new OneToManyJson();
            var options = new System.Text.Json.JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
                WriteIndented = true,
            };
            var json = OneToManyJsonSerializer.Serialize(dictionary, options);
            File.WriteAllText(@"output.json", json);
        }
    }
}

単語の追加

namespace ConsoleApp
{
    public class ConsoleApp
    {
        public void Program()
        {
            var dictionary = new OneToManyJson();
            dictionary.AddWord(new Word
            {
                Entry = new Entry
                {
                    Form = "test",
                    // ID を指定しなかった場合は、デフォルトで 0 が設定されます。
                    // AddWordメソッドは、 ID が他の単語と重複している場合、自動的に ID を修正します。
                },
            });
            var options = new System.Text.Json.JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
                WriteIndented = true,
            };
            var json = OneToManyJsonSerializer.Serialize(dictionary, options);
            File.WriteAllText(@"output.json", json);
        }
    }
}

関連語の自動修正

namespace ConsoleApp
{
    public class ConsoleApp
    {
        public void Program()
        {
            var dictionary = new OneToManyJson();
            dictionary.AddWord(new Word
            {
                Entry = new Entry
                {
                    Form = "大きい",
                },
                Relations = new List<Relation>
                {
                    new Relation
                    {
                        Title = "対義語",
                        Entry = new Entry
                        {
                            Form = "小さい",
                        },
                    },
                },
            });
            dictionary.AddWord(new Word
            {
                Entry = new Entry
                {
                    Form = "小さい",
                },
                Relations = new List<Relation>
                {
                    new Relation
                    {
                        Title = "対義語",
                        Entry = new Entry
                        {
                            Form = "大きい",
                        },
                    }
                },
            });
            dictionary.RelationIdCompletion();
            /* RelationIdCompletion メソッドで、 *
             * 関連語に ID を設定していなくても、  *
             * 自動的に ID を関連付けてくれます。  */
            var options = new System.Text.Json.JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
                WriteIndented = true,
            };
            var json = OneToManyJsonSerializer.Serialize(dictionary, options);
            File.WriteAllText(@".\..\..\output5.json", json);
        }
    }
}

Version

Version 1.0.0

  • Otamajakushi リリース

Version 1.1.0

  • ZpDIC 内で用いるデータがうまく扱えない問題を修正
  • 自動でIDを振って、単語を追加する機能を追加
  • 自動で関連語のIDを関連付ける機能を追加

Version 1.2.0

  • 多くのクラスで比較可能に(==!=が使えるように)なった
  • 自動で重複した項目を削除

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 261 6/6/2020
1.1.0 253 5/31/2020
1.0.0 200 3/20/2020