• Stars
    star
    298
  • Rank 139,016 (Top 3 %)
  • Language
    C#
  • License
    Microsoft Recipro...
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Special Thanks to Our Contributors !!

Updated Pluralization Package & Test cleanup marblekirby

Implemented Immutable Classes Feature
Holly-HaCKer

Implemented Immutable Classes Feature
Jehoel

Assisted in Bug Fixing
tyeth, dogac00

Architecture Overview

Json2CsharpArchitecture drawio The architecture of the project is segmented into two parts.

  • Part 1: Consuming the JSON input. In this phase, the below is generally done:
    • Parse the Json string
    • Create a list of JObjects from the parsed string
    • Create a dictionary of JObject types/ Understand how the json is structured
  • Part 2: Write The Output using the supplied ICodeWriter interface
    • Using the property injected in the JsonClassGenerator class, the corresponding concrete code writer is called and the writing process begins
    • The code write can be configured using the configuration classes in the CodeWriteConfiguration folder
    • Create a dictionary of JObject types/ Understand how the json is structured
    • Finally, the GenerateClasses in the JsonClassGenerator class will return a StringBuilder instance that contains all the written classes

Roadmap

  • Support for dictionaries #18: The tool should have the option to detect dictionaries, currently dictionaries are treated as classes. Can be done using Markov Chain approach
  • Support for nested arrays #5: Currently, nested arrays return empty values
  • Support for datetime #90 ability to detect various types of datetime formats and a setting to turn this feature off

Bug Fixing

1- Choose a problem from the issues labeled "Bug" or "Help Wanted"

2- Clone the repository and build it

3- Create a Unit Test using "CreatTest.ps1" Powershell Script or copy paste existing unit tests and follow naming conventions

  • Use the format to name your unit tests: "[TestNumber]_[DescribeProblem]"**
  • Run the script in Powershell
  • This will create 3 files: the csharp test, the Json Input text file, and the Output C# or JAVA etc.. file alt text
  • Start Debugging, Put some test Json and Get to Know the solution