gpt4 book ai didi

java - 在 PHP 中接收带有 html 标签的 json 失败

转载 作者:行者123 更新时间:2023-12-01 23:27:32 24 4
gpt4 key购买 nike

我有一个网站,它使用 jersey 从我的 Java REST 服务器发送和接收 JSON 格式的字符串。一切工作正常,直到我尝试接收带有 html 标签的 json 对象。

我的 java 服务器上的 println 告诉我该数据已发送:

data sent: {"text": "Wij zijn Pixel Apps, ook wel bekend als Groep 6.<br />
Samen met onze 6 groepsleden verzorgen wij het reilen en zijlen op Ford Lommel Proving Grounds.<br />
<br />
<b>Korte inleiding</b><br />
<p>Onze taak bestaat er uit een functionele applicatie te maken binnen Windows 8. De app bestaat er uit de chauffeurs te begeleiden op hun testritten.<br />De chauffeurs worden onder andere geholpen bij het bekijken van hun routineplan, het bijhouden van notities en het overzetten van de resultaten naar het hoofdgebouw.</p>
<b>Bijkomende hoort natuurlijk het onderhouden van deze website.</b>
<p>Zoals u kan zien vind u hierboven het navigatiemenu.<br />
Voor meer informatie over ons project kan u terecht bij <i>Over ons</i><br />
Wenst u contact op te nemen? U kan zich wenden naar het tabblad <i>Contact</i><br />
Indien u meer over de individuele groepsleden wil weten kan u terecht bij <i>Leden</i><br />
Als u meer informatie wenst over ons project, gelieve contact op te nemen met ons en wij verzorgen uw verzoek.</p>
<b>Happy browsing!</b>"}

它基本上是一个简单的 json,带有一个变量“文本”和一些 HTML 格式的内容作为内容。我已经用谷歌搜索了我的问题,看来这应该可以正常工作。

这是我的 java GET 方法,无法发送内容中带有 html 标签的 json:

@GET
@Path("gettext")
@Produces("application/json")
public String getJson(@QueryParam("id") String id, @QueryParam("taalcode") String taalcode) {
Connectie c = new Connectie();
try
{
c.openConnectie();
String content = c.getCms(id, taalcode);
if (content == null || content.equals("")) {
content = "{ \"text\" : \"Geen tekst gevonden.\" }";
}
System.out.println("data send: "+content);
return content;
}
catch(Exception e)
{
System.out.println("data send: { \"text\" : \"Server error, sorry.\" }");
return "{ \"text\" : \"Server error, sorry.\" }";
}
}

我的 put 方法成功接收到一个内容中有 html 标签的 json。以下是我在 PHP 中接收 json 对象的方式(如果不存在 html 标签,该对象同样有效):

public function getCMS($id) {
$taalcode = '';
if($this->session->userdata('language') == 'nederlands') {
$taalcode = 'NL';
} else {
$taalcode = 'EN';
}
$curl_instance = curl_init();
curl_setopt($curl_instance, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_instance, CURLOPT_URL, 'http://192.168.0.251:8084/Groep1/webresources/cmspost/gettext?id='.$id.'&taalcode='.$taalcode);

try {
$data = json_decode(curl_exec($curl_instance), true);
if ($data == null) {
$data['text'] = "Altough I set a string in my java get method if it's null, this message is always printed";
}
return $data;
} catch (HttpException $ex) {
$data['text'] = $ex;
return $data;
}
}

在 PHP 中,我测试 if ($data == null) ,它始终为 true,即使我在 GET 方法中手动设置了一个字符串,if 在发送字符串之前似乎为 null。

我做错了什么?

最佳答案

问题不在于 HTML。问题是 JSON 不允许多行字符串。如果删除换行符,您的 JSON 就可以正常工作。

注意,您确实应该使用 JSON 库来构建 JSON,而不是自己构建,因为它会处理此类问题。

关于java - 在 PHP 中接收带有 html 标签的 json 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com