对于如何将phpjson文件添加到javascript文件中?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍php写入json文件,并为您提供关于Jackson不会将新的JSON对象附加到现有
对于如何将 php json 文件添加到 javascript 文件中?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍php写入json文件,并为您提供关于Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中、Jooq-将字段更新为NULL使其变为“ null”而不是NULL JSON.valueOf(null)与(JSON) null 使用Converter
- 如何将 php json 文件添加到 javascript 文件中?(php写入json文件)
- Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中
- Jooq-将字段更新为NULL使其变为“ null”而不是NULL JSON.valueOf(null)与(JSON) null 使用Converter
converter = Converter.ofNullable( JSON.class, String.class, JSON::data, JSON::json ); 的注意事项 - JSON 数据未显示在 .json 文件中?
- NGINX反向代理配置结构 ./nginx.conf 文件中 #1 的示例:./nginx.conf 文件中 #2 的示例:
如何将 php json 文件添加到 javascript 文件中?(php写入json文件)
如何解决如何将 php json 文件添加到 javascript 文件中?
我想在外部将const数据变量集成到PHP文件中。它的作用是什么?我正在将我的 PHP 页面上的数据更改为 json 格式,但如何将其拉入 javascript 页面?
User.js 文件:
const data = {users: [
{
id: 1,fullName: ''galen Slixby'',company: ''Yotz PVT LTD'',role: ''editor'',username: ''gslixby0'',country: ''El Salvador'',contact: ''(479) 232-9151'',email: ''gslixby0@abc.net.au'',currentPlan: ''enterprise'',status: ''inactive'',avatar: '''',},
],}
User.PHP 文件:
$response = []; $response[''users'']=[]; foreach($firmalar as $firma){ $response[''data''][] = [
"avatar"=>"",''id''=> $firma[''id''],''responsive_id'' => '''',''full_name''=> $firma[''firma_adi''],''email''=> $firma[''firma_mail''],''role''=> $firma[''firma_sektor''],''current_plan''=> $firma[''firma_telefon''],''status''=> $firma[''firma_tehlike'']
]; } echo json_encode($response);
解决方法
IIUC 您要使用的结构需要在 PHP 中进行映射。 因此,您有一个具有一个元素 users
和值的对象 - 对象数组(可能是用户)。请记住,在编码之前,您应该在 PHP 中拥有相同的内容。
<?php
$json = new stdClass();
$json->users = [];
$firmalar = [
[
''id'' => 1,''firma_adi'' => ''firma_adi'',''firma_mail'' => ''firma_mail'',''firma_sektor'' => ''firma_sektor'',''firma_telefon'' => ''firma_telefon'',''firma_tehlike'' => ''firma_tehlike'',],];
foreach($firmalar as $firma)
{
$user = new stdClass();
$user->avatar = "";
$user->id = $firma[''id''];
$user->responsive_id = '''';
$user->full_name = $firma[''firma_adi''];
$user->email = $firma[''firma_mail''];
$user->role = $firma[''firma_sektor''];
$user->current_plan = $firma[''firma_telefon''];
$user->status = $firma[''firma_tehlike''];
$json->users[] = $user;
}
echo json_encode($json);
//or if you want that data available in your js file simply generate valid JS statement for assigning produced json to (in you case) constant BEFORE loading the JS file
echo ''const data =\\''''.json_encode($json).''\\'''';
请按照 json_encode 文档了解有关使用的更多详细信息。
干杯!
,response()->json($result);是解决方案!
Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中
如何解决Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中
我正在尝试构建一个 Springboot 应用程序,该应用程序允许从 Postman 插入 Json 对象并将其保存到包含其他数据的现有 json 文件中。我是杰克逊的新手,所以也许我错过了什么?
这是我的 json 文件的样子:
[
{
"Name":"After Dark","Author":"Haruki Murakami"
},{
"Name":"It","Author":"Stephen King"
}
]
这是我尝试过的:
@PostMapping("/insertBook")
public void insertBook(@RequestBody Book book) {
File booksJsonFile = Paths.get(this.getClass().getResource("/books.json").toURI()).toFile();
objectMapper.writeValue(booksJsonFile,book);
}
它插入了一个空文件,但它没有附加到现有的 json 文件中。
我也试过这个:
@PostMapping("/insertBook")
public void insertBook(@RequestBody Book book) throws URISyntaxException {
try {
File file = Paths.get(this.getClass().getResource("/books.json").toURI()).toFile();
FileWriter fileWriter = new FileWriter(file,true);
SequenceWriter seqWriter = objectMapper.writer().writeValuesAsArray(fileWriter);
seqWriter.write(book);
seqWriter.close();
} catch (IOException e) {
e.printstacktrace();
}
}
这是我从邮递员那里发送的:
我是否需要使用其他东西来达到我想要的结果? 我将非常感谢您的帮助。
解决方法
我已尝试根据您的代码重现您的问题,并得出以下结论:
-
您不能直接修改
resources
下的文件。这是explanation why。 -
我设法将新的
JSON
附加到文件中(使用您的方法但在本地保存文件),但这可能不是您所期望的(json 结构已损坏):
[
{
"Name":"After Dark","Author":"Haruki Murakami"
},{
"Name":"It","Author":"Stephen King"
}
][{"Name":"new name","Author":"new author"}]
恐怕无法直接在文件中更新当前的 JSON 结构。
- 我设法使用 org.json library 解决了您的问题。但是,我的解决方案的缺点是每次都需要重写整个文件。此外,我使用了
synchronized
关键字以避免同时修改文件。
public synchronized void updateJsonFile(Book book) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Path path = Paths.get("./books.json");
final String currentJsonArrayAsString = Files.readString(path);
try (FileWriter fileWriter = new FileWriter(path.toFile(),false)) {
JSONObject jsonObject = new JSONObject(objectMapper.writeValueAsString(book));
JSONArray jsonArray = new JSONArray(currentJsonArrayAsString);
jsonArray.put(jsonObject);
fileWriter.write(jsonArray.toString());
}
}
现在 books.json
具有以下内容:
[
{
"Author":"Haruki Murakami","Name":"After Dark"
},{
"Author":"Stephen King","Name":"It"
},{
"Author":"new author","Name":"new name"
}
]
Jooq-将字段更新为NULL使其变为“ null”而不是NULL JSON.valueOf(null)与(JSON) null 使用Converter converter = Converter.ofNullable( JSON.class, String.class, JSON::data, JSON::json ); 的注意事项
如何解决Jooq-将字段更新为NULL使其变为“ null”而不是NULL JSON.valueOf(null)与(JSON) null 使用Converter<JSON, String> converter = Converter.ofNullable( JSON.class, String.class, JSON::data, JSON::json ); 的注意事项
所以这是我以前在jooq 3.11中使用的查询。
我正在更新JSON字段,但是使用JsonBinding将其映射到模型中的String,我将在其下方发布
dsl.update(TASK)
.set(TASK.JSON_SOLUTION,(String) null).
.where(TASK.TENANT.eq(getCurrentTenant()))
.and(TASK.TASK_TEMPLATE_ID.in(taskTemplateIds));execute()
现在升级到jooq 3.13.2后,该功能不再起作用。即使我正在使用MysqL 5_7数据库,我也不得不将sql方言更改为MysqL,这可能是问题所在?
我也尝试过,但还是一样
dsl.update(TASK)
.setNull(TASK.JSON_SOLUTION).
.where(TASK.TENANT.eq(getCurrentTenant()))
.and(TASK.TASK_TEMPLATE_ID.in(taskTemplateIds));execute()
JsonBinding.class
public class JsonBinding implements Binding<JSON,String> {
@Override
public Converter<JSON,String> converter() {
return new JsonConverter();
}
@Override
public void sql(BindingsqlContext<String> bindingsqlContext) {
if (bindingsqlContext.render().paramType() == ParamType.INLINED) {
bindingsqlContext
.render()
.visit(DSL.inline(bindingsqlContext.convert(converter()).value()))
.sql("::json");
} else {
bindingsqlContext.render().sql("?");
}
}
@Override
public void register(BindingRegisterContext<String> bindingRegisterContext) throws sqlException {
bindingRegisterContext
.statement()
.registerOutParameter(bindingRegisterContext.index(),Types.VARCHAR);
}
@Override
public void set(BindingSetStatementContext<String> bindingSetStatementContext)
throws sqlException {
bindingSetStatementContext
.statement()
.setString(
bindingSetStatementContext.index(),Objects.toString(bindingSetStatementContext.convert(converter()).value(),null));
}
@Override
public void set(BindingSetsqlOutputContext<String> bindingSetsqlOutputContext)
throws sqlException {
throw new sqlFeatureNotSupportedException();
}
@Override
public void get(BindingGetResultSetContext<String> bindingGetResultSetContext)
throws sqlException {
bindingGetResultSetContext
.convert(converter())
.value(
JSON.valueOf(
bindingGetResultSetContext
.resultSet()
.getString(bindingGetResultSetContext.index())));
}
@Override
public void get(BindingGetStatementContext<String> bindingGetStatementContext)
throws sqlException {
bindingGetStatementContext
.convert(converter())
.value(
JSON.valueOf(
bindingGetStatementContext
.statement()
.getString(bindingGetStatementContext.index())));
}
@Override
public void get(BindingGetsqlInputContext<String> bindingGetsqlInputContext) throws sqlException {
throw new sqlFeatureNotSupportedException();
}
}
JsonConverter.class
public class JsonConverter implements Converter<JSON,String> {
@Override
public String from(JSON object) {
return object != null ? object.toString() : null;
}
@Override
public JSON to(String string) {
return JSON.valueOf(string);
}
@Override
public Class<JSON> fromType() {
return JSON.class;
}
@Override
public Class<String> toType() {
return String.class;
}
}
这是jooq使用.setNull()运行的查询
update `tasks_service`.`task` set `tasks_service`.`task`.`json_solution` = ''null''::json where (`tasks_service`.`task`.`tenant` = ''skynet'' and `tasks_service`.`task`.`task_template_id` in (''55'',''33''))
在jooq 3.11升级之前,查询是这样
update `tasks_service`.`task` set `tasks_service`.`task`.`json_solution` = null::json where (`tasks_service`.`task`.`tenant` = ''skynet'' and `tasks_service`.`task`.`task_template_id` in (''55'',''33''))
因此,在将其设置为''json_solution''= null之前,以及在升级之后,似乎将其设置为''json_solution''=''null''
不太确定为什么会这样吗?
编辑:因此,据我所知,这似乎完全来自于JOOQ的升级,而不是sql-dialect。如果同时将Jooq 3.11.5与MysqL和MysqL_5_7用作方言,则将查询构建为set''json_solution''= null,如果我将JOOQ升级到3.13.2,则将其set''json_solution''=''null''
这个怪癖似乎也只发生在JSON字段上,我尝试将同一表上的另一个varchar String字段设置为null,然后得到正确的设置“ field_name''= null
问题可能出在我的JsonBinding / JsonConverter吗?我必须对其稍作修改,以便与JOOQ中的新JSON对象一起使用,因为以前的JOOQ将JSON映射为Object
解决方法
JSON.valueOf(null)
与(JSON) null
答案在org.jooq.JSON
的Javadoc中:
CAST(NULL AS JSON)
值由类型为null
的{{1}}引用而不是JSON
表示。这与jOOQ从data() == null
和NULL
方法返回Result
的一般方法是一致的。
因此,错误在于Record
使用JSON.valueOf()
。改写成这样:
JsonConverter
或者,只需使用Converter.ofNullable()
,它即可为您处理空对空映射:
public JSON to(String string) {
return string == null ? null : JSON.valueOf(string);
}
使用Converter<JSON,String> converter = Converter.ofNullable( JSON.class,String.class,JSON::data,JSON::json );
的注意事项
由于jOOQ本机支持Binding
类型,因此您实际上不再需要绑定。如果您要将JSON
转换为JSON
,则您的String
就足够了。
JSON 数据未显示在 .json 文件中?
如何解决JSON 数据未显示在 .json 文件中?
我正在尝试学习如何在我的应用中使用 algolia,并且不得不涉足 JSON
。我创建了一个函数,用于将数据添加到我的 Firestore
数据库,并将事件名称附加到我项目中的 firestore.json
文件。
这是功能
@IBAction public func createEventButton(_ sender: UIButton) {
let error = validateFields()
if error != nil {
showError(error!)
} else {
db.collection("school_users/\\(user?.uid)/events").addDocument(data: ["event_name": nameTextField.text,"event_date": dateTextField.text,"event_cost": costTextField.text,"for_grades": gradesTextField.text,"school_id": schoolIDTextF.text]) { (error) in
if error != nil {
self.showError("There was an error trying to add user data to the system.")
} else {
self.dismiss(animated: true,completion: nil)
}
}
array.append(Event(eventName: nameTextField.text!))
writeJSON(events: array)
print(array.map({$0.eventName}))
}
}
此功能完美运行并在控制台中运行对象,但是当我检查项目中的 firestore.json
文件时,该文件完全空白。这是正常的吗?我想使用该文件来测试 Algolia 框架,并且可以选择添加 JSON 文件,但是如果文件为空,我将如何使用我写入文件的数据?
我也会附上我的 JSON 函数
func writeJSON(events: [Event]) {
do {
let fileURL = try FileManager.default.url(for: .desktopDirectory,in: .userDomainMask,appropriateFor: nil,create: true).appendingPathComponent("firestore.json")
let encoder = JSONEncoder()
try encoder.encode(array).write(to: fileURL)
} catch {
print(error)
}
}
这可能是初学者的问题,但我是初学者,因此不胜感激,谢谢。
NGINX反向代理配置结构 ./nginx.conf 文件中 #1 的示例:./nginx.conf 文件中 #2 的示例:
如何解决NGINX反向代理配置结构 ./nginx.conf 文件中 #1 的示例:./nginx.conf 文件中 #2 的示例:
Nginx 反向代理的指令是否有“适当”的结构?在查找 Nginx 反向代理示例时,我发现了两个主要区别。
http
指令用于容纳所有server
指令。带有数据的服务器列在upstream
指令内的池中。server
指令在main
指令中直接列出。
这是否有任何原因,或者这只是语法上的糖差异?
./Nginx.conf 文件中 #1 的示例:
upstream docker-registry {
server registry:5000;
}
http {
server {
listen 80;
listen [::]:80;
return 301 https://$host#request_uri;
}
server {
listen 443 default_server;
ssl on;
ssl_certificate external/cert.pem;
ssl_certificate_key external/key.pem;
# set HSTS-Header because we only allow https traffic
add_header Strict-Transport-Security "max-age=31536000;";
proxy_set_header Host $http_host; # required for Docker client sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location / {
auth_basic "Restricted"
auth_basic_user_file external/docker-registry.htpasswd;
proxy_pass http://docker-registry; # the docker container is the domain name
}
location /v1/_ping {
auth_basic off;
proxy_pass http://docker-registry;
}
}
}
./Nginx.conf 文件中 #2 的示例:
server {
listen 80;
listen [::]:80;
return 301 https://$host#request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
error_log /var/log/Nginx/error.log info;
access_log /var/log/Nginx/access.log main;
ssl_certificate /etc/ssl/private/{SSL_CERT_FILENAME};
ssl_certificate_key /etc/ssl/private/{SSL_CERT_KEY_FILENAME};
location / {
proxy_pass http://app1
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr; # Could also be `$proxy_add_x_forwarded_for`
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
}
解决方法
我不太明白您的问题,但在我看来,第二个示例缺少 http {},我不认为 nginx 会在没有它的情况下启动。 除非您的 example2 文件以某种方式包含在具有 http{}
的 nginx.conf 中今天关于如何将 php json 文件添加到 javascript 文件中?和php写入json文件的讲解已经结束,谢谢您的阅读,如果想了解更多关于Jackson 不会将新的 JSON 对象附加到现有的 Json 文件中、Jooq-将字段更新为NULL使其变为“ null”而不是NULL JSON.valueOf(null)与(JSON) null 使用Converter
本文标签: