php,我想把数据库内容做成json格式,数据有换行符,去掉换行符输出后检测还是会换行。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php,我想把数据库内容做成json格式,数据有换行符,去掉换行符输出后检测还是会换行。相关的知识,希望对你有一定的参考价值。

php,我想把数据库内容做成json格式,数据有换行符,取出数据后我把换行符之类影响json的都替换了。然后用json_encode转换成json格式。再网页中输出以后源代码是一行,也没有换行符,但是检测时候就出问题了。换行符还是存在。
输出json的网址 http://gist.fanmingfei.cn/app/?a=article&id=5

我不知道你用什么方式输出的json~

你应该用php内置的json_encode来输出~这样无论你的数据里有什么换行之类的,都可以正常输出?

<?php

$str = <<<EOF
测试换行
<br>b
aaa
EOF;
$data = array(
'title' => '测试getJSON为毛同样的代码读取不同信息效果不同 失效',
"content" => $str,
"cate" => "灌水专区",
"user" => "edire",
"addtime" => "01-26 01:35:25",
"edittime" => "01-26 01:35:25",
"comments" => "0",
"favorites" => "0"
);
echo json_encode($data);

?>


以上代码会输出

"title":"\\u6d4b\\u8bd5getJSON\\u4e3a\\u6bdb\\u540c\\u6837\\u7684\\u4ee3\\u7801\\u8bfb\\u53d6\\u4e0d\\u540c\\u4fe1\\u606f\\u6548\\u679c\\u4e0d\\u540c \\u5931\\u6548","content":"\\t\\u6d4b\\u8bd5\\u6362\\u884c\\r\\n\\tb\\r\\n\\taaa","cate":"\\u704c\\u6c34\\u4e13\\u533a","user":"edire","addtime":"01-26 01:35:25","edittime":"01-26 01:35:25","comments":"0","favorites":"0"


所有的中文和换行等特殊符号均已被转义,你可以去bejson去解析一下这串数据试试~

参考技术A 1:PHP中可以用PHP_EOL来替代,以提高代码的可移植性
因为换行在不同系统会有不同的表现形式
在unix系列用 \n
在windows系列用 \r\n
在mac用 \r
2:例如
$content=str_replace(PHP_EOL,"",$content);
参考技术B 输出之前去掉换行符追问

我在数据库取出来以后就已经把换行符去掉了 然后我又进行的数据处理

参考技术C <?php
$string = <<<EOF
啊\\n

EOF;

echo $string."</br>";

$search = array("\\n","\\r");
echo str_replace($search, '', $string);
?>

如何根据给定的 json 格式排列数据帧

【中文标题】如何根据给定的 json 格式排列数据帧【英文标题】:How to arrange dataframe according to the given json format 【发布时间】:2021-12-24 18:31:34 【问题描述】:

这是我正在处理的数据框 我想把它改成如下格式的数据集

“身份证”: “唯一标识”:“标识” “细节” : “人名”:“姓名” “人名”:“年龄”

【问题讨论】:

【参考方案1】:

你的 json 有几个问题。

    在子 json“详细信息”中不能有两次相同的“人名”键 您缺少外部花括号。

所以修正后的 json 对象应该是这样的。

"Id": "Unique-id": "id", "Details": "Person-name": "name", "Person-age": "25"

如果是这样,那么转换就很简单了。

df = (spark.read.json('test.json')
      .withColumn('Unique-Id', F.col('Id.Unique-id'))
      .withColumn('age', F.col('Id.Details.Person-age'))
      .withColumn('name', F.col('Id.Details.Person-name'))
      .drop('Id')
      .withColumnRenamed('Unique-Id', 'id')
  )

【讨论】:

【参考方案2】:

您只需要选择您需要的字段。假设以下输入 DataFrame:

case class Top(Id: Inner)
case class Inner(`Unique-id`: String, Details: Details)
case class Details(`Person-name`: String, `Person-age`: Int)

val ss: SparkSession = ???
import ss.implicits._

val df = Seq(
  Top(Inner("1201", Details("satish", 25)))
).toDF

您将拥有以下内容:

root
 |-- Id: struct (nullable = true)
 |    |-- Unique-id: string (nullable = true)
 |    |-- Details: struct (nullable = true)
 |    |    |-- Person-name: string (nullable = true)
 |    |    |-- Person-age: integer (nullable = false)

您可以使用以下命令构建所需的输出:


df.select(
  col("Id.Unique-id") as "id",
  col("Id.Details.Person-name") as "name",
  col("Id.Details.Person-age") as "age",
)

【讨论】:

以上是关于php,我想把数据库内容做成json格式,数据有换行符,去掉换行符输出后检测还是会换行。的主要内容,如果未能解决你的问题,请参考以下文章

在 react-mentions 包中解析标记

javascript中怎么循环提取文本框内容,做成json格式传送到新窗口显示??

如何根据给定的 json 格式排列数据帧

如何在PHP中返回Json数据

ASP怎样生成json格式?

Ajax入门