Scripted RREST API payload need to get for invalid JSON

Pavan_Snow_1
Kilo Guru

I have a scripted REST api and now I am trying to get the payload if it is a valid then I am able to get it as below

 

 

var payload = request.body.data;

 

 

But if third party system send invalid JSON to ServiceNow then how to capture that I have tried different ways but not able to get it.

Below is the example of invalid JSON but I am trying to get it. 

 

 

{
	"Data": {
		"Name": "test",
		"ID": "1500"
		"description": "Test description"
	}
}

 

 

 Share any solution if it is possible to get in any way.

Thanks in advance!

1 ACCEPTED SOLUTION

Pavan_Snow_1
Kilo Guru

I think we can't get the invalid JSON as payload on request.

 

View solution in original post

20 REPLIES 20

Hi @Prabu Velayutha ,

Yes i tried not working. I think because  it is not a valid json. 

Prince Arora
Tera Sage
Tera Sage

@Pavan_Snow_1 

 

What should be the valid JSON? please provide some examples

 

If my answer solved your issue, please mark my answer as Correct & 👍Helpful based on the Impact.

Hi @Prince Arora ,

{
	"Data": {
		"Name": "test",
		"ID": "1500"
		"description": "Test description"
	}
}

Take this as a example after id comma is missing so it will be invalid JSON. Even it is missing comma i need to get it on scripted REST API.

@Pavan_Snow_1 ,

 

You can do one thing for example:

 

 

try{

var data = JSONData; // lets just say its the invalid one
data = JSON.parse(data); // you need to do parsing for using the data for your scripting,
if data is invalid it will through some errors and you can catch those errors in the catch block.

}catch(ex){

var res = {};
res["status"] = "Error";
res["message"] = ex.message;
response.setBody(JSON.stringify(res)); // sending the invalid message back

}

 

I hope you understand!

 

If my answer solved your issue, please mark my answer as Correct & 👍Helpful based on the Impact.

Hi @Prince Arora ,

Errors  I am able to do but I am trying to capture that invalid payload.