json2python-models icon indicating copy to clipboard operation
json2python-models copied to clipboard

Keep plural names for objects

Open a1d4r opened this issue 3 years ago • 1 comments

Describe

Plural names of JSON objects are converted to singular nouns (e.g. details -> Detail, statistics -> Statistic). It is an expected behaviour for JSON arrays but not for objects.

Reproduce

Package version: v0.2.4

JSON data: example.py

{
  "details": {
    "amount": 1,
    "description": "Lorem Ipsum"
  },
  "statistics": {
    "likes": 100,
    "comments": 200
  }
}

json2models -m Example example.json -f pydantic --max-strings-literals 1 > example.py

Desired result

class Example(BaseModel):
    details: 'Details'
    statistics: 'Statistics'


class Details(BaseModel):
    amount: int
    description: str


class Statistics(BaseModel):
    likes: int
    comments: int

Actual result

class Example(BaseModel):
    details: 'Detail'
    statistics: 'Statistic'


class Detail(BaseModel):
    amount: int
    description: str


class Statistic(BaseModel):
    likes: int
    comments: int

a1d4r avatar Nov 11 '21 15:11 a1d4r

Thank you for reporting. I agree that it should work as you described. Unfortunately its requires some untrvial changes to the core logic of generator and currently I don't have time to impelement it.

bogdandm avatar Nov 26 '21 12:11 bogdandm