proxyman-windows-linux icon indicating copy to clipboard operation
proxyman-windows-linux copied to clipboard

[BUG] JSON Body parser causes missing large number

Open NghiaTranUIT opened this issue 10 months ago • 0 comments

Description

JSON Body parser causes missing large number

Steps to Reproduce

  1. Make a POST with this body:
{
	"big_number": 1655989280365,
	"super_big": 165598928036513123123,
	"null": null,
	"int_numbers": [
		1,
		2,
		3,
		4,
		16559892803651312312311122
	],
	"float_numbers": [
		1.2,
		2.2,
		3.03,
		4.004,
		165598928036513123123.0000165598928036513123123,
		0.123000000000000005123
	],
	"name": "Proxyman",
	"small": 123456,
	"float": 500000.20004,
	"float_2": 200.001,
	"boolean": true,
	"boolean_false": false,
	"complex": [
		{
			"big_number": 1655989280365,
			"super_big": 165598928036513123123,
			"null": null,
			"int_numbers": [
				1,
				2,
				3,
				4
			],
			"float_numbers": [
				1.2,
				2.2,
				3.03,
				4.004
			],
			"name": "Proxyman",
			"small": 123456,
			"float": 500000.20004,
			"float_2": 200.001,
			"boolean": true,
			"boolean_false": false
		}
	]
}
  1. See on Proxyman Windows

Current Behavior

  • all bug numbers are lost
  • Request Tab:
{
  "big_number": 1655989280365,
  "super_big": 165598928036513120000,
  "null": null,
  "int_numbers": [
    1,
    2,
    3,
    4,
    1.6559892803651313e+25
  ],
  "float_numbers": [
    1.2,
    2.2,
    3.03,
    4.004,
    165598928036513120000,
    0.123
  ],
  "name": "Proxyman",
  "small": 123456,
  "float": 500000.20004,
  "float_2": 200.001,
  "boolean": true,
  "boolean_false": false,
  "complex": [
    {
      "big_number": 1655989280365,
      "super_big": 165598928036513120000,
      "null": null,
      "int_numbers": [
        1,
        2,
        3,
        4
      ],
      "float_numbers": [
        1.2,
        2.2,
        3.03,
        4.004
      ],
      "name": "Proxyman",
      "small": 123456,
      "float": 500000.20004,
      "float_2": 200.001,
      "boolean": true,
      "boolean_false": false
    }
  ]
}
  • Response is wrong too, because the request is changed

Expected Behavior

  • [x] Have the same Request/Response that when we don't use Proxyman
  • [x] Big numbers are unchanged
  • [x] Use this lib: https://www.npmjs.com/package/lossless-json
  • [x] Verify it's working and doesn't break current logic: Space, font, ...
  • [x] Write Unit Test for this case

Environment

  • App version:
  • Windows/Linux version:

NghiaTranUIT avatar Apr 09 '24 02:04 NghiaTranUIT