我的服务器上有几个包含JSON-LD script
元素的HTML文件。我正在寻找一种简单的方法来更新特定元素,而无需实际进入每个文件,更改代码并重新保存它。
具体来说,我想以编程方式遍历每个文件,找到datePosted
属性并将其值更新为当前日期,然后将文件保存在我的服务器上。
我非常习惯使用PHP而且我已经使用HTML文件做了类似的事情,但从未尝试过更新JSON-LD。
想知道是否有人知道如何使用JavaScript或PHP执行此操作。如果没有,有人能指出我使用JSON-LD的好解析器的正确方向吗?
示例JSON-LD:
{
"@context": "http://schema.org",
"@type": "JobPosting",
"datePosted": "2018-01-23"
}
答案 0 :(得分:0)
这很简单,只需要使用json_decode和json_encode来使它工作:
public class WhatPrimesTest {
@Rule
public PactProviderRuleMk2 provider = new PactProviderRuleMk2("PrimeService", "localhost", 81, this);
@Pact(provider = "PrimeService", consumer = "PrimeServiceClient")
public RequestResponsePact createPact(PactDslWithProvider builder) {
Map<String, String> headers = new HashMap();
headers.put("Content-Type", "application/json");
DslPart etaResults = new PactDslJsonBody()
.stringType("requestedGtin", "4211")
.integerType("nodeId", 6132)
.eachLike("gtinList")
.eachArrayLike("AVAILABLE", 4322)
.asBody();
return builder
.given("There is a prime gtin 4211 from node 6132")
.uponReceiving("A request for gtinList")
.path("/primeService/6132?upc=4211")
.method("GET")
.willRespondWith()
.status(200)
.headers(headers)
.body(etaResults).toPact();
}
@Test
@PactVerification("PrimeService")
public void doTest() {
System.setProperty("pact.rootDir", "../pacts"); // Change output dir for generated pact-files
String gtinExpected = "00000000012348";
String gtinList = new WhatPrime(provider.getPort()).checkEta(6132, "4211");
System.out.println("According to test eta=" + gtinList);
//assertTrue(gtinList.);
//assertArrayEquals("00000000012348", gtinExpected);
}
}