Comments (3)
Unit
is not meant to have some JSON representation or anything. It seems like what you should be doing is defining a different function to call upstream such that the response bodies aren't automatically parsed.
Regardless what you use, the initial JSON parsing will fail when dealing with the invalid JSON string. ReadForeign really only deals with how to deal with actual Foreign
values being decoded, not the actual parsing of the JSON string.
from purescript-simple-json.
You don't have to take my word for it, look at how the readJSON methods work by first calling parseJSON, which is a separate function:
purescript-simple-json/src/Simple/JSON.purs
Lines 64 to 77 in c5e2b7b
purescript-simple-json/src/Simple/JSON.purs
Lines 129 to 139 in c5e2b7b
from purescript-simple-json.
Ack, sorry for the delay here. You're right, of course; when I made this ticket I had forgotten that a completely blank input is indeed invalid JSON.
For anybody else that might stumble on this: what we ended up doing was parameterizing our request method on a "how to handle the response" input (more or less of type String -> E a
) and giving it readJSON
in the usual case but giving it const (Right unit)
in the case where the expected response is unit.
Closing this, thank you!
from purescript-simple-json.
Related Issues (20)
- Enum sum generics example to test/docs HOT 3
- Test example/docs for usage with inferred record types HOT 2
- add String Literal type HOT 1
- "readAsForeign"
- How to use this library with Affjax? HOT 5
- Parsing Foreign Records fails HOT 2
- How to handle arbitrary String Maps/JSON HOT 5
- `read_` :: forall a. ReadForeign a => Foreign -> Maybe a, `readJSON_`
- Use ErrorAtIndex HOT 5
- Handling undefined values HOT 6
- Instance for JSDate HOT 2
- Creating enumWriteForeign? HOT 4
- Affjax example does not compile HOT 2
- Quickstart doc doesn't define WithNullable HOT 1
- Mention lack of Tuple parsing in documentation HOT 1
- needs a github actions setup that actually works HOT 2
- Pull requests not accepted from "fake accounts"?
- Provide examples of decoding recursive types HOT 3
- Upgrade to 0.15.0 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from purescript-simple-json.