mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-07-31 01:08:41 +02:00
Type conversion when using bodyAsJson #394
Closed
opened 2025-12-29 15:22:40 +01:00 by adam
·
8 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.13.0
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net-wiremock#394
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @vovka15 on GitHub (Dec 30, 2021).
Originally assigned to: @StefH on GitHub.
Description:
Wiremock changes data types in response fields.
For example:
I have following response template:
If I am making request with field that containts text then wiremock send my text back as string type as it should be:
"text": "abc"- >"text": "abc"but if I am making request with field that contains string but it is a number then wiremock responses with the Int type:
"text": "1"->"text": 1Expected behavior:
Wiremock does not change data types in response fields.
Test to reproduce
"test": "1")"test": 1Other related info
Wiremock version - 1.4.30
@StefH commented on GitHub (Dec 31, 2021):
Hello @v1le thank you for this issue.
I'll investigate.
(Note that I first thought that this could be related to Handlebars: https://dotnetfiddle.net/b3WCwx, but I think that's ok.)
@StefH commented on GitHub (Jan 3, 2022):
https://github.com/WireMock-Net/WireMock.Net/pull/710
@StefH commented on GitHub (Jan 3, 2022):
@v1le
Try preview version
1.4.30-ci-15745.(https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions)
@vovka15 commented on GitHub (Jan 4, 2022):
@StefH
Hello, just tested it.
Tried some cases:
"text": "1"->"text": "1""text": "sometext"->"text": "sometext""text": 1->"text": "1"(expected"text": 1)Well, bug is fixed, but I think would be good if these 3 cases would pass.
@StefH commented on GitHub (Jan 4, 2022):
@v1le
Thanks for testing.
However, I need to revert this fix because it's not correct.
The problem is that when
{{request.bodyAsJson.text}}is transformed, the result is always a string. It does not matter if the the source was a string or an integer.Then the string value
"1"is parsed usingJToken.Parse, and the result is an integer.So the string
"1"becomes an integer1.The only way to make sure that a string stays a string, is adding two extra quotes, like this:
When this is done, all options return a string, so:
"text": "1"->"text": "1""text": "sometext"->"text": "sometext""text": 1->"text": "1"There is no other/easy way without breaking the current logic from WireMock.
However I will think about this some more...
@vovka15 commented on GitHub (Jan 5, 2022):
Thank you for providing workaround - did not think about adding extra quotes.
I will use extra quotes on places where I am expecting string and will not where I am not.
@StefH commented on GitHub (Jan 5, 2022):
Closing this question.
https://github.com/WireMock-Net/WireMock.Net/pull/710
@StefH commented on GitHub (Jan 6, 2022):
@v1le
I see that Scriban does have the method
Evaluatewhich will return the real value, so an int stays an int.See this example:
https://dotnetfiddle.net/sZGbaX
However, currently I'm using the
Rendermethod, also for Scriban.So in order to get this working, I need to add a new setting which can switch between Evaluate or Render and then you need to choose Scriban instead of Handlebars.
Maybe this could work, however I'll not build this in a short time...