The short answer: Yes but is not recommended.
The long answer: It depends on what you call valid…
[ECMA-404] “The JSON Data Interchange Syntax” doesn’t say anything about duplicated names (keys).
The names within an object SHOULD be unique.
In this context SHOULD must be understood as specified in BCP 14:
SHOULD This word, or the adjective “RECOMMENDED”, mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.
[RFC 8259] explains why unique names (keys) are good:
> An object whose names are all unique is interoperable in the sense
> that all software implementations receiving that object will agree on
> the name-value mappings. When the names within an object are not
> unique, the behavior of software that receives such an object is
> unpredictable. Many implementations report the last name/value pair
> only. Other implementations report an error or fail to parse the
> object, and some implementations report all of the name/value pairs,
> including duplicates.
Also, as Serguei pointed out in the comments: ECMA-262 “ECMAScript® Language Specification”, reads:
In the case where there are duplicate name Strings within an object, lexically preceding values for the same key shall be overwritten.
In other words, last-value-wins.
org.json.JSONException: Duplicate key "status" at org.json.JSONObject.putOnce(JSONObject.java:1076)